1

ОС: Windows 10 (Home & Pro)
У меня есть несколько подпрограмм, которые я выполняю ежедневно, они просты:
• установить переменные даты • запустить команду robocopy, отфильтровывая определенные каталоги • записать все движения файлов (я включил короткую версию одной из моих подпрограмм ниже).

Я использовал подобные процедуры более 15 лет, чтобы автоматизировать обычные перемещения файлов, и до Windows 8 все происходило всегда гладко, а затем окно команд (cmd) как-то менялось. Я держал мануал Windows 7 только для запуска этих подпрограмм, а затем, после того, как тот рухнул, я был вынужден использовать машину с Windows 10.
Процедуры работают нормально, за исключением того, что процедура запускается в командном окне, черное командное окно остается открытым. Вот некоторые из вещей, которые я пробовал:
• Я установил параметры по умолчанию для командного окна, чтобы отключить "QuickEdit" (из stackoverflow https://stackoverflow.com/questions/37578529/disable-quickedit-in-windows-10-cmd-exe)
• Я запустил окно cmd в режиме Windows10 по умолчанию, в режиме Legacy и в качестве администратора.
• Я запустил скрипт vbs для отправки комбинации [alt]+[f4] в конце (но обнаружил, что даже если я физически нажимаю [alt]+[f4], когда одно из командных окон открыто, оно на самом деле не закройте окно - вы должны нажать на красный крестик на окне, чтобы закрыть его)
• В конце я запустил скрипт vbs для sendkeys [alt]+[пробел], а затем [c], снова выполняя эту серию нажатий клавиш, если я выполняю их физически, а выполненный скрипт vbs - нет.
• Я выполнил поиск "Зависание командного окна Windows 10" или "не закрывается", и ни один из найденных ответов не дает адреса, заставляющего окно закрываться после выполнения команд с использованием командного файла.
• Я пытался завершить подпрограммы без каких-либо команд выхода, и я использовал команды "выход" и «Выход /b 0» в качестве самой последней строки

Поскольку эти процедуры выполняются на одном из моих клиентских компьютеров каждое утро, прежде чем они приходят на работу - я приказал ему просто щелкнуть X в командном окне, если оно все еще открыто, когда они добираются до офиса, но я бы с удовольствием выяснить:
»Почему командное окно Windows 10 делает это, зная, ПОЧЕМУ это происходит, для меня так же важно, как и найти решение ...
»И как заставить эти окна закрываться после выполнения процедуры пакетной обработки.

Большинство моих подпрограмм не вызывают никаких других подпрограмм в них, хотя у меня есть две, которые запускают вторую подпрограмму пакетного файла после запуска первой - они запускают второй командный файл с помощью "вызова".
Они всегда хорошо работали на Windows XP, Windows 7 и даже на некоторых компьютерах с Windows 8 - Они даже работали правильно в первых выпусках Windows 10.
Мой ноутбук, который работает под управлением версии 10.0.16299.371, работает нормально. Если я запускаю одну из подпрограмм на своем ноутбуке, командное окно закрывается так же, как и всегда.
Я заметил, что если я просто открою командное окно из меню «Пуск / Выполнить» на одном из "проблемных" компьютеров (также с той же версией W10) и наберу "exit" в командной строке, окно закроется.

Заранее благодарю за любые предложения / информацию по этому вопросу.
Джон Р.


@echo off
setlocal
set mm=%Date:~0,2%
set dd=%Date:~3,2%
set yy=%Date:~6,2%
set hh=%time:~0,2%
set mn=%time:~3,2%

REM ROUTINE UPDATED 06-06-17 ADDED INDIVIDUAL FOLDER TRANSFERS AND 1970 FILES MOVED SEPERATELY

TITLE WS01 BC TO CCSO04 120D   %yy%%mm%%dd% %hh%%mn%
COLOR CE

MD "C:\DATA FILES\WS01 PHOTOS\Archive Backup\Logs\DAILY WS01 FILES\%yy%%mm%%dd%"

Robocopy "\\WS01\BCTEMP\506" "\\ccso04\CAM_120\506" /E /S /V /TEE /NP /XN /XO /XC /MOVE /FFT /R:2 /W:1 /XF *.BAT /XF *.LNK /XD "#recycle" /XD "~TRANSFER_LOGS" /XF "*1970*" /XD "*1970*" /ETA /A-:SHR /LOG:"C:\DATA FILES\WS01 PHOTOS\Archive Backup\Logs\DAILY WS01 FILES\%yy%%mm%%dd%\%yy%%mm%%dd% %hh%%mn% WS01 CAM 506 TO 120D.TXT"
MD "\\WS01\BCTEMP\506"

Robocopy "\\WS01\BCTEMP\513" "\\ccso04\CAM_120\513" /E /S /V /TEE /NP /XN /XO /XC /MOVE /FFT /R:2 /W:1 /XF *.BAT /XF *.LNK /XD "#recycle" /XD "~TRANSFER_LOGS" /XF "*1970*" /XD "*1970*" /ETA /A-:SHR /LOG:"C:\DATA FILES\WS01 PHOTOS\Archive Backup\Logs\DAILY WS01 FILES\%yy%%mm%%dd%\%yy%%mm%%dd% %hh%%mn% WS01 CAM 513 TO 120D.TXT"
MD "\\WS01\BCTEMP\513"

Robocopy "\\WS01\BCTEMP\514" "\\ccso04\CAM_120\514" /E /S /V /TEE /NP /XN /XO /XC /MOVE /FFT /R:2 /W:1 /XF *.BAT /XF *.LNK /XD "#recycle" /XD "~TRANSFER_LOGS" /XF "*1970*" /XD "*1970*" /ETA /A-:SHR /LOG:"C:\DATA FILES\WS01 PHOTOS\Archive Backup\Logs\DAILY WS01 FILES\%yy%%mm%%dd%\%yy%%mm%%dd% %hh%%mn% WS01 CAM 514 TO 120D.TXT"
MD "\\WS01\BCTEMP\514"

Robocopy "\\WS01\BCTEMP\515" "\\ccso04\CAM_120\515" /E /S /V /TEE /NP /XN /XO /XC /MOVE /FFT /R:2 /W:1 /XF *.BAT /XF *.LNK /XD "#recycle" /XD "~TRANSFER_LOGS" /XF "*1970*" /XD "*1970*" /ETA /A-:SHR /LOG:"C:\DATA FILES\WS01 PHOTOS\Archive Backup\Logs\DAILY WS01 FILES\%yy%%mm%%dd%\%yy%%mm%%dd% %hh%%mn% WS01 CAM 515 TO 120D.TXT"
MD "\\WS01\BCTEMP\515"

Robocopy "\\WS01\BCTEMP\516" "\\ccso04\CAM_120\516" /E /S /V /TEE /NP /XN /XO /XC /MOVE /FFT /R:2 /W:1 /XF *.BAT /XF *.LNK /XD "#recycle" /XD "~TRANSFER_LOGS" /XF "*1970*" /XD "*1970*" /ETA /A-:SHR /LOG:"C:\DATA FILES\WS01 PHOTOS\Archive Backup\Logs\DAILY WS01 FILES\%yy%%mm%%dd%\%yy%%mm%%dd% %hh%%mn% WS01 CAM 516 TO 120D.TXT"
MD "\\WS01\BCTEMP\516"

REM -- LAST LINE TO COPY 1970 FILES AND FOLDERS
MD "\\CCSO04\CAM_120\%yy%%mm%%dd% %hh%%mn% TRANSFERS"
Robocopy "\\WS01\WS01_bctemp" "\\ccso04\CAM_120\%yy%%mm%%dd% %hh%%mn% TRANSFERS" /E /S /V /TEE /NP /XN /XO /XC /MOVE /FFT /R:2 /W:1 /XF *.BAT /XF *.LNK /XD "#recycle" /XD "~TRANSFER_LOGS" /ETA /A-:SHR /LOG:"C:\DATA FILES\WS01 PHOTOS\Archive Backup\Logs\DAILY WS01 FILES\%yy%%mm%%dd%\%yy%%mm%%dd% %hh%%mn% WS01 CAM 1970 FILES TO 120D.TXT"

RD "\\CCSO04\CAM_120\%yy%%mm%%dd% %hh%%mn% TRANSFERS"

MD "\\WS01\BCTEMP\506"
MD "\\WS01\BCTEMP\513"
MD "\\WS01\BCTEMP\514"
MD "\\WS01\BCTEMP\515"
MD "\\WS01\BCTEMP\516"

CALL "C:\Data Files\WS01 Photos\Archive Backup\TREE - WS01.BAT"
CHOICE /D Y /M "TRANSFER COMPLETE - READY TO CONTINUE" /T 30
EXIT

0