Eu tenho uma máquina virtual de 64 bits do Servidor 2012 R2 Standard que está agindo de forma estranha. Os arquivos Bat funcionam bem e a janela do CMD fecha normalmente; mas se a pasta que contém o arquivo bat estiver fechada durante a execução do arquivo bat, ele terminará, mas a janela do CMD não será fechada. Eu simplifiquei isso ao ponto de ter o arquivo bat mais simples possível. Contém 1 linha.
pausar
- Abra a pasta que contém o arquivo bat com o Windows Explorer
- Inicie o arquivo bat clicando duas vezes nele
- Feche a janela do Windows Explorer
- Pressione qualquer tecla na janela do CMD
- O cursor se move para a próxima linha quando o arquivo bat terminar
- janela CMD permanece
Isso só acontece em uma máquina. Alguém sabe porque isso pode ser? É uma VM de teste e talvez deva ser apenas reconstruída, mas isso me deixa curioso. Obrigado
Eu substituí meu arquivo bat simples por um contendo o seguinte:
@assoc .bat
@for /F "tokens=1,* delims==" %%G in ('assoc .bat') do @ftype %%H
@reg query "HKLM\Software\Microsoft\Command Processor" /v AutoRun 2>NUL
@reg query "HKCU\Software\Microsoft\Command Processor" /v AutoRun 2>NUL
@wmic process where "caption = 'cmd.exe'" get CommandLine, ParentProcessId, ProcessID
@echo please close Windows Explorer before continuing
@pause
@wmic process where "caption = 'cmd.exe'" get CommandLine, ParentProcessId, ProcessID
@pause
Os resultados são mostrados abaixo:
.bat=batfile
batfile="%1" %*
CommandLine ParentProcessId ProcessId
C:\Windows\system32\cmd.exe /c ""D:\test.bat" " 1608 8460
please close Windows Explorer before continuing
Press any key to continue . . .
CommandLine ParentProcessId ProcessId
C:\Windows\system32\cmd.exe /c ""D:\test.bat" " 1608 8460
Press any key to continue . . .
CommandLine
13/04/2016
Eu descobri um pouco mais olhando o Gerenciador de Tarefas enquanto fazia isso. Quando eu inicio o arquivo bat 2 linhas aparecem na janela Gerenciador de Tarefas - Detalhes ... 1 para cmd.exe e 1 para conhost.exe. Quando o bastão termina o cmd.exe desaparece, mas o conhost.exe permanece. Uma outra coisa que notei é que você realmente não precisa sair da pasta do Windows Explorer como eu disse anteriormente ... tudo que você precisa fazer é clicar em qualquer lugar na janela do Explorer. Se eu não clicar em qualquer lugar na janela do Explorer, a janela do CMD para o arquivo bat é fechada normalmente e ambas as tarefas desaparecem da janela de detalhes como seria de esperar.