Wie deaktiviere ich die automatische Schließung der Eingabeaufforderung nach Abschluss?

18

Ich weiß, dass es einige Tricks mit älteren Versionen von Windows gab, um dies zu erreichen, bin mir aber unter Windows 7 nicht sicher.

Wenn ich eine Software hatte, die einen Befehl mit Schaltern ausführt, die dazu führen, dass sich das Fenster cmd.exe schnell öffnet und schließt, wie kann ich die Eingabeaufforderung so konfigurieren, dass sie nach Abschluss der Aufgabe NICHT automatisch geschlossen wird.

Der Trick dabei ist, dass der ausgeführte Befehl in der Tat eine Batch-Datei ist und am Ende eine Pause-Anweisung enthält. Die Art und Weise, wie die Software versucht, den Befehl auszuführen, schlägt jedoch fehl. Da es so schnell geschlossen wird, wissen wir nicht, welcher Fehler zurückgegeben wird, da es so schnell geschlossen wird.

Mythen
quelle
Gute Frage, leise wünschte ich mir auch, ich wüsste das, weil manchmal Spiel- / Software-Patches in .BAT-Dateien eingehen, die geschlossen werden, nachdem Anweisungen ausgeführt wurden, ohne dass die ausgeführten Befehle angehalten und dem Endbenutzer angezeigt werden.
Boris_yo
1
Öffnen Sie ein Befehlsfenster, wechseln Sie in dieses Verzeichnis und führen Sie den Stapel von dort aus aus. Dies würde in demselben nicht schließenden Cmd-Fenster ausgeführt, das nach Abschluss des Stapels geöffnet bleibt. Das könnte Ihnen einige Hinweise geben, um das Debuggen zu erleichtern.
Dienstag,
Dank slhck, Sie haben mich auf diesen Speicherort verwiesen. Dies scheint die beste Möglichkeit zu sein, das zu erreichen, was ich möchte, und zwar in der Registrierung für batfile / cmdfile.
Mythics

Antworten:

8

Anstatt diese .batDatei direkt aus dem Explorer oder einer anderen von Ihnen verwendeten Methode cmd.exeauszuführen , starten Sie sie manuell (bei Bedarf mit erhöhten Rechten) und führen Sie dann Ihre .batDatei von dort aus. Dann werden Sie nach Abschluss der Ausführung immer noch die gesamte Ausgabe sehen ... genau wie in den guten alten DOS-Tagen. :)

Mxx
quelle
cmdDrücken enterSie Start und geben Sie ein und drücken Sie, um eine Eingabeaufforderung zu starten. Ziehen Sie einfach das, was Sie ausführen müssen (Ihr Python-Skript oder .exe), in die cmd-Fenster und drücken Sie enter.
JinSnow
6

Verwenden Sie in Ihrer BAT-Datei den pauseBefehl. Dadurch wird verhindert, dass Ihre BAT-Datei geschlossen wird.

Dies ist beispielsweise meine bat-Datei, mit der ich den MySQL-Dienst auf meinem PC starte:

net start MySQL
pause

Hinweis: Unter Windows 7 starte ich diese .bat-Datei unter dem Namen des Administrators. Klicken Sie dazu mit der rechten Maustaste auf Ihre .bat-Datei und wählen Sie im Dropdown-Menü die Option "Start from Administrator's name".

Nikita
quelle
5

Sie müssen die Option / k verwenden, wenn Sie anrufen.

Nützliche Details hier .

Shevek
quelle
1

Bei der .bat-Skripterstellung lassen Sie das "Beenden" am Ende des Skripts aus, um das Befehlsfenster geöffnet zu lassen.

Ein von einem Skript geöffnetes Befehlsfenster schließt sich immer am Ende des Skripts, da es vom Skript abhängig ist. Wenn Sie das Fenster selbst öffnen und das Skript ausführen, wird das Fenster nur geschlossen, wenn Sie den Befehl "exit" am Ende des Skripts angegeben haben, da das Fenster nicht vom Skript abhängig ist.

Es scheint, dass es keine Möglichkeit gibt, das Schließen eines skriptabhängigen Fensters zu verhindern, wenn das Skript in Windows 7 beendet wird. Es ist jedoch möglich, dass Fehlermeldungen an anderer Stelle aufgezeichnet werden. Verfügt das Programm über eine Protokolldatei? Oder gibt es Einträge in den Windows-Protokollen?

music2myear
quelle
0
pause>nul

das sollte funktionieren.

Antworten
quelle
2
Bitte lesen Sie die Frage noch einmal sorgfältig durch. Ihre Antwort beantwortet nicht die ursprüngliche Frage. "Der Trick dabei ist, dass der ausgeführte Befehl in der Tat eine Batch-Datei ist und am Ende eine Pause-Anweisung enthält. "
DavidPostill
0

Drücken Sie startund geben Sie cmdund drücken enter, erhalten Sie eine Eingabeaufforderung starten. Ziehen Sie einfach das, was Sie ausführen müssen (Ihr Python-Skript, .exe ...), in die cmd-Fenster und drücken Sie die Eingabetaste. (Wenn Sie den Befehl als Administrator ausführen müssen, suchen Sie den Befehl im Startmenü, klicken Sie mit der rechten Maustaste darauf und wählen Sie "". run as admin) (Funktioniert unter Windows 7)

JinSnow
quelle
Bitte posten Sie nicht die gleiche Antwort auf mehrere Fragen. Wenn dieselben Informationen tatsächlich beide Fragen beantworten, sollte eine Frage (normalerweise die neuere) als Duplikat der anderen geschlossen werden. Sie können dies anzeigen, indem Sie abstimmen, um es als Duplikat zu schließen, oder, wenn Sie nicht genug Reputation dafür haben , ein Flag setzen, um anzuzeigen, dass es sich um ein Duplikat handelt. Passen Sie andernfalls Ihre Antwort auf diese Frage an und fügen Sie dieselbe Antwort nicht an mehreren Stellen ein.
DavidPostill
0

Ich hatte dieses Problem schon eine Weile und habe endlich gemerkt, was passiert.

Wenn Sie eine Task mit dem Taskplaner starten und es sich um eine Bat-Datei handelt, wird das Cmd-Fenster mit dem Pfad C: \ WINDOWS \ system32 und NICHT mit dem Pfad der Bat-Datei geöffnet. Warum? Ich habe keine Ahnung! Also musste ich das Verzeichnis mit der CD in die bat-Datei einfügen.

Beispiel unten:

cd c: \ blahblahblah

startmyprogram.exe

user38300
quelle
Ihre Antwort führt zu großer Verwirrung und Sie können den Grund für das aufgetretene OP-Problem nicht feststellen. Besser, Sie verweisen auf diesen Link. Superuser.com/help/how-to-answer , hilft Ihnen bei der Beantwortung.
Rajesh S