Wie kann ich verhindern, dass eine Eingabeaufforderung mit einer Fehlermeldung von cmd.exe geschlossen wird?

Wie kann ich verhindern, dass eine Eingabeaufforderung mit einer Fehlermeldung von cmd.exe geschlossen wird?

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 startund eingeben cmdund 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 cdzum 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 pausenach 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.

verwandte Informationen