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.
windows-7
command-line
Mythen
quelle
quelle
Antworten:
Anstatt diese
.bat
Datei direkt aus dem Explorer oder einer anderen von Ihnen verwendeten Methodecmd.exe
auszuführen , starten Sie sie manuell (bei Bedarf mit erhöhten Rechten) und führen Sie dann Ihre.bat
Datei 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. :)quelle
cmd
Drückenenter
Sie 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 Sieenter
.Verwenden Sie in Ihrer BAT-Datei den
pause
Befehl. 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:
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".
quelle
Sie müssen die Option / k verwenden, wenn Sie anrufen.
Nützliche Details hier .
quelle
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?
quelle
das sollte funktionieren.
quelle
Drücken Sie
start
und geben Siecmd
und drückenenter
, 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)quelle
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
quelle