Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Verschachtelte For-Abfrage mit IF

Frage Entwicklung Batch & Shell

Mitglied: bankaifan

bankaifan (Level 2) - Jetzt verbinden

27.05.2010 um 13:20 Uhr, 5221 Aufrufe, 6 Kommentare

Moin zusammen,

folgendes Problem:

ich hab n kleines Batch-Programm:

01.
for %%i in (0,1,255) do ( 
02.
for %%j in (0,1,255) do ( 
03.
for %%k in (0,1,255) do ( 
04.
ping %%i.%%j.%%k 
05.
::Soweit ist alles klar 
06.
:: 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 
07.
set != 
08.
FOR %%h in (0 1 2) do IF Errorlevel %%h00 set EL=%%h 
09.
IF not Errorlevel 200 set !=6 7 8 9 
10.
FOR %%z in (0 1 2 3 4 5 %!%) do IF Errorlevel %EL%%%z0 set EL=%EL%%%z 
11.
IF not Errorlevel 250 set !=6 7 8 9 
12.
FOR %%e in (0 1 2 3 4 5 %!%) do IF Errorlevel %EL%%%e set EL=%EL%%%e 
13.
ECHO Errorlevel: %EL% 
14.
set != 
15.
16.
17.
18.
 


Wäre schön wenn es doch i-wie gehen würde

Gruß Daniel
Mitglied: Snowman25
27.05.2010 um 13:31 Uhr
Hallo bankaifan,

01.
for %%i in (0,1,255) do ( 
02.
	for %%j in (0,1,255) do ( 
03.
		for %%k in (0,1,255) do ( 
04.
			ping %%i.%%j.%%k 
05.
			if ERRORLEVEL 0 ( 
06.
				set "ding=" 
07.
				FOR %%h in (0 1 2) do IF Errorlevel %%h00 set EL=%%h 
08.
				IF not Errorlevel 200 set ding=6 7 8 9 
09.
				FOR %%z in (0 1 2 3 4 5 %ding%) do IF Errorlevel %EL%%%z0 set EL=%EL%%%z 
10.
				IF not Errorlevel 250 set ding=6 7 8 9 
11.
				FOR %%e in (0 1 2 3 4 5 %ding%) do IF Errorlevel %EL%%%e set EL=%EL%%%e 
12.
				ECHO Errorlevel: %EL% 
13.
				set "ding=" 
14.
15.
16.
17.
)
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...
Bitte warten ..
Mitglied: bankaifan
27.05.2010 um 13:47 Uhr
Danke dir....

scheint zu funktionieren
...

weiß es noch ned ganz sicher, aber sieht gut aus, danke dir

nur noch ne kleine ändernung

01.
if not ERRORLEVEL 1 ( 
02.
echo %%i.%%j.%%k.0 >> test.txt 
03.
)
wenn ich mich nicht irre bedeutet das ja, wenn ERRORLEVEL nicht 1 oder größer
Bitte warten ..
Mitglied: Snowman25
27.05.2010 um 13:52 Uhr
Zitat von bankaifan:
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
kurz: nö! NOT dreht die Aussage um.
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
So kannst du sicherstellen, dass du auch da landest, wo du hin wolltest
Bitte warten ..
Mitglied: bankaifan
27.05.2010 um 13:54 Uhr
okee^^ jetzt hab ichs verstanden ... dankö

EDIT: Wenn ich if ERRORLEVEL EQU 0 (...
schreibe sagt er EQU ist synthaktisch an dieser stelle nicht verfügbar/verwendbar
oder muss ich dann dort mit %ERRORLEVEL% EQU 0 machen?
[ot]

*Ne tüte Kaffeebohnen reich*

[/ot]
Bitte warten ..
Mitglied: Snowman25
27.05.2010 um 13:58 Uhr
Zitat von bankaifan:
oder muss ich dann dort mit %ERRORLEVEL% EQU 0 machen?
Ja

[ot] *Ne tüte Kaffeebohnen reich* [/ot]
[ot] danke. Jetzt reichts aber auch mit dem rumgespamme von uns [/ot]
Bitte warten ..
Mitglied: bankaifan
27.05.2010 um 14:00 Uhr
Ok^^

[ot] hast recht [/ot]
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Seltsames Verhalten bei Errorlevel abfrage in FOR DO Schleife (1)

Frage von Kalma73 zum Thema Batch & Shell ...

C und C++
gelöst IF Abfrage funktioniert nicht mehr (2)

Frage von pablovic zum Thema C und C ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Windows 10
Windows 10: Version 1607 jetzt im Current Branch for Business

Link von Penny.Cilin zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...