Ho una macchina virtuale a 64 bit standard Server 2012 R2 che agisce in modo strano. I file bat funzionano bene e la finestra CMD si chiude normalmente; ma se la cartella contenente il file bat viene chiusa durante l'esecuzione del file bat, finirà ma la finestra CMD non si chiuderà. L'ho semplificato al punto da avere il file bat più semplice possibile. Contiene 1 riga. pausa
- Apri la cartella contenente il file bat con Esplora risorse
- Avvia il file bat facendo doppio clic su di esso
- Chiudi la finestra di Windows Explorer
- Premere un tasto qualsiasi nella finestra CMD
- Il cursore si sposta sulla riga successiva al termine del file bat
- La finestra CMD rimane
Questo succede solo su una macchina. Qualcuno sa perché questo potrebbe essere? È una VM di prova e forse dovrebbe essere solo ricostruita, ma mi incuriosisce. Grazie
Ho sostituito il mio file bat semplice con uno contenente quanto segue:
@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
I risultati sono mostrati di seguito:
.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 . . .
Riga di comando
13/04/2016 Ho scoperto qualcosa in più guardando Task Manager mentre lo facevo. Quando avvio il file bat, vengono visualizzate 2 righe nella Gestione attività - Finestra Dettagli ... 1 per cmd.exe e 1 per conhost.exe. Al termine del pipistrello cmd.exe scompare, ma rimane conhost.exe. Un'altra cosa che ho notato è che non devi davvero uscire dalla cartella di Windows Explorer come ho già detto ... tutto quello che devi fare è fare clic in qualsiasi punto della finestra di Explorer. Se non clicco da nessuna parte nella finestra Explorer, la finestra CMD per il file bat si chiude normalmente ed entrambe le attività scompaiono dalla finestra dei dettagli come ci aspetteremmo.
exit
comando per chiudere la finestra CMD. Potrebbe essere questo potrebbe aiutare.