Wie kann man verhindern, dass sich die Eingabeaufforderung nach der Ausführung schließt?
Mein Problem ist, dass es in Windows Befehlszeilenfenster gibt, die sich unmittelbar nach der Ausführung schließen. Um dieses Problem zu lösen, möchte ich als Standardverhalten, dass das Fenster offen gehalten wird. Normalerweise lässt sich dieses Verhalten mit drei Methoden vermeiden, die mir in den Sinn kommen:
- Einfügen einer
pause
-Zeile nach Batch-Programmen, um den Benutzer aufzufordern, vor dem Beenden von eine Taste zu drücken 2. Ausführen dieser Batch-Dateien oder anderer Befehlszeilen-Manipulationswerkzeuge (sogar Dienststart, Neustart usw. mitnet start xy
oder etwas Ähnlichem) innerhalb voncmd.exe
(Start - Ausführen - cmd.exe) - Ausführen dieser Programme mit
cmd /k
wie folgt:cmd /k myprogram.bat
Aber es gibt noch einige andere Fälle, in denen der Benutzer:
- Er führt das Programm zum ersten Mal aus und weiß nicht, dass das angegebene Programm in der Eingabeaufforderung (Windows Command Processor) ausgeführt wird, z.B. beim Ausführen einer Verknüpfung aus dem Startmenü (oder von irgendwo anders), ODER
- Findet es ein wenig unangenehm, cmd.exe die ganze Zeit auszuführen und hat nicht die Zeit/Gelegenheit, den Code dieser Befehle überall neu zu schreiben, um eine Pause danach zu machen oder das explizite Beenden zu vermeiden.
Ich habe einen Artikel darüber gelesen, wie man das Standardverhalten von cmd.exe
ändert, wenn man es explizit öffnet, indem man einen AutoRun-Eintrag und die Manipulation seines Inhalts an diesen Stellen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor\AutoRun
(Die AutoRun-Einträge sind _String values_
…)
Ich habe cmd /d /k
als Wert von ihm gesetzt, um es auszuprobieren, aber das hat das Verhalten der oben genannten Stuffs überhaupt nicht verändert… Es hat nur das Verhalten des Kommandozeilenfensters geändert, wenn es explizit geöffnet wird (Start-Run-cmd.exe).
Wie funktioniert es also? Können Sie mir irgendwelche Ideen zur Lösung dieses Problems geben?