tennessee
Goto Top

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

Content-ID: 34508

Url: https://administrator.de/contentid/34508

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

tennessee
tennessee 20.06.2006 um 12:22:24 Uhr
Goto Top
So führt er die Kette aus

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

aber wert=0 obwohl es 7 sein sollte face-sad
Biber
Biber 20.06.2006 um 12:32:57 Uhr
Goto Top
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:
@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
tennessee
tennessee 20.06.2006 um 13:06:56 Uhr
Goto Top
danke!