Eine .exe, die über cmd.exe ausgeführt wird, wird ausgeführt und verschwindet dann schnell, bevor ich die Fehlermeldung lesen kann. Wie kann ich erreichen, dass das cmd.exe-Fenster und die Fehlermeldung nicht geschlossen werden? Oder gibt es eine Möglichkeit, die gerade angezeigten Fehlerinformationen zu protokollieren? Danke.
Antwort1
Wenn Sie ein Programm starten, das die Konsole startet, wird das Fenster tatsächlich geschlossen, da CMD nicht mehr benötigt wird.
Wenn Sie drücken start
und eingeben cmd
und die Eingabetaste drücken, wird eine Eingabeaufforderung gestartet.
Geben Sie den Laufwerksbuchstaben ein, auf dem sich das Programm befindet (falls es sich nicht um C: handelt), gefolgt von einem :, und drücken Sie die Eingabetaste.
In den folgenden Beispielen stellt das _ am Ende Ihren Cursor dar.
Beispiel:
C:\Users\User>D:_
D:\>_
Navigieren Sie nun mit dem Befehl cd
zum Verzeichnis des Programms. Sie können tabauf die automatische Vervollständigung von Namen klicken. tabWenn dieser Ordner vorhanden ist, wird auch „Tools“ angezeigt.
Beispiel:
D:\>cd Tools_
D:\Tools>cd "My Program"_ <- type 'My' and press tab to Autocomplete to "My Program"
D:\Tools\My Program>_
Geben Sie nun den Namen des Programms ein, das Sie ausführen möchten.
Beispiel:
D:\Tools\My Program>program_
Hello, I am the error message you want to see.
D:\Tools\My Program>_
Antwort2
Normalerweise erstelle ich dazu eine Bat-Datei im selben Ordner (benenne die neue Textdatei also in „was auch immer.bat“), öffne sie im Textordner und gebe Folgendes ein:
ProgramName.exe
Pause
Schließen und speichern Sie, führen Sie dann die Bat-Datei aus und sie sollte geöffnet bleiben!
Antwort3
Sie können die .bat-Datei verwenden, um diese EXE auszuführen.
Sie können auch den folgenden Befehl in cmd verwenden, um den Fehler/die Ausgabe dieser EXE-Datei in einer Textdatei zu protokollieren:
meineDatei.exe >> "C:\logFile.txt"
Das doppelte Größer-als-Zeichen hängt an die vorhandene Datei „ >> “ an, ein einzelnes Zeichen überschreibt jedoch die vorhandene Datei „ ">“.
Ich hoffe, dies hilft Ihnen, den Fehler zu protokollieren.
Antwort4
Demzufolge:
|| [...] command1 || command2 Wird verwendet, um den folgenden Befehl || nur auszuführen, wenn der vorherige Befehl || fehlschlägt. Cmd.exe führt den ersten Befehl aus und führt dann den zweiten Befehl nur aus, wenn der erste Befehl nicht erfolgreich abgeschlossen wurde (einen Fehlercode größer als Null empfängt).
und wenn Sie diese EXE-Datei erstellen, müssen Sie pause
nach Ihren Sätzen nur den Befehl einfügen.
Und ein Beispiel in C++, das die Bash aufruft:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
system("cd akfhaskfn|| pause");
system("cd || pause");
return 0;
}
Sie werden sehen, dass nur der erste den Pausenbefehl aufruft.