Verschachtelte For-Abfrage mit IF
Moin zusammen,
folgendes Problem:
ich hab n kleines Batch-Programm:
Wäre schön wenn es doch i-wie gehen würde
Gruß Daniel
folgendes Problem:
ich hab n kleines Batch-Programm:
for %%i in (0,1,255) do (
for %%j in (0,1,255) do (
for %%k in (0,1,255) do (
ping %%i.%%j.%%k
::Soweit ist alles klar
:: Jetzt möchte ich hier das Errorlevel abfragen und nur bei EL 0 weiter machen, wenn ich aber hier ne IF-Abfrage einbaue sagt er mir Synthaxfehler
set !=
FOR %%h in (0 1 2) do IF Errorlevel %%h00 set EL=%%h
IF not Errorlevel 200 set !=6 7 8 9
FOR %%z in (0 1 2 3 4 5 %!%) do IF Errorlevel %EL%%%z0 set EL=%EL%%%z
IF not Errorlevel 250 set !=6 7 8 9
FOR %%e in (0 1 2 3 4 5 %!%) do IF Errorlevel %EL%%%e set EL=%EL%%%e
ECHO Errorlevel: %EL%
set !=
)
)
)
Wäre schön wenn es doch i-wie gehen würde
Gruß Daniel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 143644
Url: https://administrator.de/forum/verschachtelte-for-abfrage-mit-if-143644.html
Ausgedruckt am: 22.12.2024 um 19:12 Uhr
6 Kommentare
Neuester Kommentar
Hallo @bankaifan,
man verwendet kein Ausrufezeichen als Variablennamen...
Gruß
Snow
PS: Ich glaube, du möchtest for /L in deinen 3 Schleifen verwenden..
PPS: Seit wann besteht eine IP aus nur 3 Oktetten?
: PPPS : Das ding wird ganz schön lange brauchen...
for %%i in (0,1,255) do (
for %%j in (0,1,255) do (
for %%k in (0,1,255) do (
ping %%i.%%j.%%k
if ERRORLEVEL 0 (
set "ding="
FOR %%h in (0 1 2) do IF Errorlevel %%h00 set EL=%%h
IF not Errorlevel 200 set ding=6 7 8 9
FOR %%z in (0 1 2 3 4 5 %ding%) do IF Errorlevel %EL%%%z0 set EL=%EL%%%z
IF not Errorlevel 250 set ding=6 7 8 9
FOR %%e in (0 1 2 3 4 5 %ding%) do IF Errorlevel %EL%%%e set EL=%EL%%%e
ECHO Errorlevel: %EL%
set "ding="
)
)
)
)
Gruß
Snow
PS: Ich glaube, du möchtest for /L in deinen 3 Schleifen verwenden..
PPS: Seit wann besteht eine IP aus nur 3 Oktetten?
: PPPS : Das ding wird ganz schön lange brauchen...
Zitat von @bankaifan:
wenn ich mich nicht irre bedeutet das ja, wenn ERRORLEVEL nicht 1 oder größer^^
wenn ich mich nicht irre bedeutet das ja, wenn ERRORLEVEL nicht 1 oder größer^^
U:\>if /?
Performs conditional processing in batch programs.
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
NOT Specifies that Windows XP should carry out
the command only if the condition is false.
ERRORLEVEL number Specifies a true condition if the last program run
returned an exit code equal to or greater than the number
specified.
[...]
%ERRORLEVEL% will expand into a string representation of
the current value of ERRORLEVEL, provided that there is not already
an environment variable with the name ERRORLEVEL, in which case you
will get its value instead. After running a program, the following
illustrates ERRORLEVEL use:
goto answer%ERRORLEVEL%
:answer0
echo Program had return code 0
:answer1
echo Program had return code 1
You can also using the numerical comparisons above:
IF %ERRORLEVEL% LEQ 1 goto okay
Am besten, du benutzt Errorlevel mit den Vergleichsoperatoren:
EQU - equal
NEQ - not equal
LSS - less than
LEQ - less than or equal
GTR - greater than
GEQ - greater than or equal
Ja
[ot] *Ne tüte Kaffeebohnen reich* [/ot]
[ot] danke. Jetzt reichts aber auch mit dem rumgespamme von uns [/ot]