Errorlevel in for schleife verarbeiten
Hallo Leute,
ich möchte in einer Schleife Dateien die in ein Verzeichnis reinlaufen mit einem Programm verschicken,
gleichzeitig möchte ich den Errorlevel auswerten um entsprechende aktionen einzuleiten.
for /F 'usebackq' %%i in (`"ls -ltr H:\xxx\Buffer\eventqueue|gawk {"print $9}""`) do %buffhome%\xx_ec -h %host% -f ..\eventqueue\%%i ; echo %ERRORLEVEL%
in diesem Konstrukt ist der Errorlevel immer 0 obwohl er eigentlich 7 z.B. ist
Wo liegt der Fehler?
Danke im Voraus
ich möchte in einer Schleife Dateien die in ein Verzeichnis reinlaufen mit einem Programm verschicken,
gleichzeitig möchte ich den Errorlevel auswerten um entsprechende aktionen einzuleiten.
for /F 'usebackq' %%i in (`"ls -ltr H:\xxx\Buffer\eventqueue|gawk {"print $9}""`) do %buffhome%\xx_ec -h %host% -f ..\eventqueue\%%i ; echo %ERRORLEVEL%
in diesem Konstrukt ist der Errorlevel immer 0 obwohl er eigentlich 7 z.B. ist
Wo liegt der Fehler?
Danke im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 34508
Url: https://administrator.de/contentid/34508
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
Moin tennessee,
in Deinem Konstrukt wird vom CMD-Interpreter die Variable %ErrorLevel% genau einmal aufgelöst, nämlich dann, wenn die eine einzige komplette Befehlszeile geladen wird.
Wenn er es anders machen soll, dann:
oder den Weg über eine "Unterroutine":
Gruß
Biber
in Deinem Konstrukt wird vom CMD-Interpreter die Variable %ErrorLevel% genau einmal aufgelöst, nämlich dann, wenn die eine einzige komplette Befehlszeile geladen wird.
Wenn er es anders machen soll, dann:
@echo off & setlocal EnableDelayedExpansion
for /F 'usebackq' %%i in (`"ls -ltr H:\afriend\Buffer\eventqueue|gawk {"print $9}""`) do set erg=%%i &..\agt_ec -h %host% -f ..\eventqueue\%erg% &echo !ERRORLEVEL! >> file.txt
oder den Weg über eine "Unterroutine":
for /F 'usebackq' %%i in (`"ls -ltr H:\afriend\Buffer\eventqueue|gawk {"print $9}""`) do set erg=%%i &..\agt_ec -h %host% -f ..\eventqueue\%erg% & call :appendit
goto :eof
:appendIt
echo %ERRORLEVEL% >> file.txt
:goto :eof
Gruß
Biber