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-Key: 34508

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

Printed on: April 24, 2024 at 10:04 o'clock

Member: tennessee
tennessee Jun 20, 2006 at 10:22:24 (UTC)
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
Member: Biber
Biber Jun 20, 2006 at 10:32:57 (UTC)
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
Member: tennessee
tennessee Jun 20, 2006 at 11:06:56 (UTC)
Goto Top
danke!