Ich habe eine Server 2012 R2 Standard 64 Bit virtuelle Maschine, die seltsam handelt. Bat-Dateien funktionieren einwandfrei und das CMD-Fenster wird normal geschlossen. Wird jedoch der Ordner mit der Bat-Datei während der Ausführung der Bat-Datei geschlossen, wird das CMD-Fenster nicht geschlossen. Ich habe dies so vereinfacht, dass es die einfachstmögliche Fledermausfeile gibt. Es enthält 1 Zeile. Pause
- Öffnen Sie den Ordner mit der Bat-Datei mit Windows Explorer
- Starten Sie die bat-Datei durch Doppelklick
- Schließen Sie das Windows Explorer-Fenster
- Drücken Sie eine beliebige Taste im CMD-Fenster
- Der Cursor springt zur nächsten Zeile, wenn die Fledermausdatei fertig ist
- CMD-Fenster bleibt bestehen
Dies geschieht nur auf einer Maschine. Weiß jemand, warum das sein könnte? Es ist eine Test-VM und sollte vielleicht nur umgebaut werden, aber es hat mich neugierig gemacht. Vielen Dank
Ich habe meine einfache Fledermausdatei durch eine ersetzt, die Folgendes enthält:
@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
Die Ergebnisse sind nachstehend aufgeführt:
.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 . . .
Befehlszeile
13.04.2016 Ich habe ein bisschen mehr herausgefunden, indem ich mir den Task-Manager angesehen habe. Wenn ich die bat-Datei starte, erscheinen im Fenster Task-Manager - Details 2 Zeilen ... 1 für cmd.exe und 1 für conhost.exe. Wenn die Fledermaus beendet ist, verschwindet cmd.exe, conhost.exe bleibt jedoch erhalten. Eine andere Sache, die mir aufgefallen ist, ist, dass Sie den Windows Explorer-Ordner nicht wirklich verlassen müssen, wie ich bereits sagte ... Alles, was Sie tun müssen, ist irgendwo im Explorer-Fenster zu klicken. Wenn ich nicht auf eine beliebige Stelle im Explorer-Fenster klicke, wird das CMD-Fenster für die Bat-Datei normal geschlossen und beide Aufgaben werden erwartungsgemäß aus dem Detailfenster entfernt.
quelle
exit
Befehl zum Schließen des CMD-Fensters explizit erwähnt . Vielleicht könnte das helfen.Antworten:
Dies ist unwahrscheinlich, aber Sie scheinen alle wahrscheinlichen Dinge ausgeschlossen zu haben. Überprüfen Sie die folgenden zwei Registrierungseinträge, um festzustellen, ob sie etwas enthalten:
oder
Alles, was sich dort befindet, wird jedes Mal aufgerufen, wenn Sie eine Batch-Datei ausführen, und wenn dies der Fall ist
cmd /k
, würde dies zu diesem Verhalten führen.quelle
Hast du das versucht?
Gleiche Dinge, aber erlaubt gleiche wie Pause und geht von selbst aus.
Und warum stellst du das @ vor alles? Warum nicht einfach @echo off vor den restlichen Befehlen verwenden?
quelle