2017-02-28 4 views
0

Gibt es eine Möglichkeit, den Text einer Windows-Fehlermeldung in einem CMD-Skript abzurufen und anzuzeigen?CMD-Datei: übersetzen Windows-Fehlermeldung

Angenommen, MYAPP.EXE gibt 2 (ERROR_FILE_NOT_FOUND) zurück. Die Meldung Windows-Fehler damit verbunden ist: „Das System kann die angegebene Datei nicht finden“

Kann ich abrufen und das Skript in meinem CMD angezeigt werden? Zum Beispiel

REM mycmd.cmd 
MYAPP.EXE 
ECHO %ERRORMESSAGE% 

Danke.

Antwort

2

Asumming Ihr Programm gibt ein Standard-Windows system error code als Exit-Code

myapp.exe 
net helpmsg %errorlevel% 
0
FOR /f "delims=" %%a IN ('COPY /y "%sourcedir%\xyz" "%sourcedir%\pol" 2^>^&1') DO SET "copyresult=%%a" 

ECHO %ERRORLEVEL% %copyresult% 

die Quelldatei nicht existiert Unter der Annahme, dann die Fehlermeldung sollte 1 von Gerät 2 (stderr) zum Gerät umgeleitet werden (stdout) und somit durch die for%%a und somit copyresult aufgebracht werden.

Dies ergibt errorlevel 1 für den copy Fall.

Wenn Sie einen nicht existierenden Befehl wie czopy anstelle von copy verwenden, dann wird errorlevel 9009 sein, aber da die Ausgabe auf zwei Linien ist,

‚CzOPY‘ wird nicht als interner oder externer anerkannt Befehl,
ausführbare Programm oder Batch-Datei.

nur die letzte an copyresult zugewiesen