SO: Windows 10 (Home e Pro)
Eu tenho várias rotinas de lote que eu corro diariamente, eles são simples:
• definir variáveis de data • executar o comando robocopy filtrando determinados diretórios • registrar todos os movimentos de arquivos (incluí uma versão curta de uma das minhas rotinas abaixo).
Eu usei rotinas semelhantes por mais de 15 anos para automatizar os movimentos de arquivos de rotina, e as coisas sempre funcionaram sem problemas até que o Windows 8 e, em seguida, a janela de comando (cmd) mudou de alguma forma. Eu mantive um manuscrito do Windows 7 em torno apenas para executar essas rotinas - e depois que um deles caiu, fui forçado a usar uma máquina com Windows 10.
As rotinas são executadas corretamente, exceto depois que a rotina é executada na janela de comando, a janela de comando preta permanece aberta. Estas são algumas das coisas que eu tentei:
• Eu defini as configurações padrão da janela de comando para desativar o "QuickEdit" (From stackoverflow link )
• Eu executei a janela cmd no modo padrão do Windows10, no modo Legado e como administrador.
• Eu executei um script vbs para enviar a combinação [alt] + [f4] no final (mas descobri que mesmo que eu pressione fisicamente [alt] + [f4] enquanto uma das janelas de comando está aberta, na verdade não feche a janela - você tem que apertar o X vermelho na janela para fechar.)
• Eu executei um script vbs no final para sendkeys [alt] + [space] e, em seguida, [c], mais uma vez, executar esta série de pressionamentos de teclas funciona fisicamente, mas o script vbs executado não. >
Eu procurei por "janela de comando do Windows 10 trava" ou "não fecha", e nenhuma das respostas que encontrei abordar a fechar a janela depois de executar comandos usando um arquivo em lotes.
• Tentei finalizar rotinas sem nenhum comando de saída e usei os comandos "exit" & "Saída / b 0" como a última linha
Como tenho essas rotinas sendo executadas em um dos computadores dos meus clientes todas as manhãs antes de entrarem no trabalho - instruí-o a clicar no X na janela de comando se ele ainda estiver aberto quando chegarem ao escritório, mas eu adoraria descobrir:
»Por que a janela de comando do Windows 10 faz isso, saber porque isso está ocorrendo é tão importante para mim quanto obter uma solução ...
»E como fechar essas janelas depois de executar a rotina em lote.
A maioria das minhas rotinas não está chamando nenhuma outra rotina de lote dentro delas, embora eu tenha duas que iniciem uma segunda rotina de arquivo de lote após a primeira ser executada - elas iniciam o segundo arquivo de lote usando "call".
Eles sempre funcionavam bem no Windows XP, Windows 7 e até mesmo em algumas máquinas com o Windows 8 - Eles até funcionavam corretamente nas primeiras versões do Windows 10.
Meu laptop, que está executando a versão 10.0.16299.371, funciona bem. Se eu executar uma das rotinas no meu laptop, a janela de comando se fecha como sempre.
Tenho notado que, se eu apenas abrir uma janela de comando do menu iniciar / executar em uma das máquinas 'problema' (também executando a mesma versão do W10) e digitar 'exit' no prompt de comando, a janela será fechada. >
Agradecemos antecipadamente por qualquer sugestão / informação sobre este assunto.
John R.
@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\BCTEMP6" "\ccso04\CAM_1206" /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\BCTEMP6"
Robocopy "\WS01\BCTEMP3" "\ccso04\CAM_1203" /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\BCTEMP3"
Robocopy "\WS01\BCTEMP4" "\ccso04\CAM_1204" /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\BCTEMP4"
Robocopy "\WS01\BCTEMP5" "\ccso04\CAM_1205" /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\BCTEMP5"
Robocopy "\WS01\BCTEMP6" "\ccso04\CAM_1206" /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\BCTEMP6"
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\BCTEMP6"
MD "\WS01\BCTEMP3"
MD "\WS01\BCTEMP4"
MD "\WS01\BCTEMP5"
MD "\WS01\BCTEMP6"
CALL "C:\Data Files\WS01 Photos\Archive Backup\TREE - WS01.BAT"
CHOICE /D Y /M "TRANSFER COMPLETE - READY TO CONTINUE" /T 30
EXIT