Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 5249 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Datenbanken
gelöst Verschachtelte SQL-Abfrage (4)

Frage von User1000 zum Thema Datenbanken ...

Batch & Shell
For-Schleife Bedingung "nicht erfüllt" abfragen (8)

Frage von BatchNeuling zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Windows 10
Seekrank bei Windows 10 (18)

Frage von zauberer123 zum Thema Windows 10 ...

Monitoring
Netzwerk-Monitoring Software (18)

Frage von Ghost108 zum Thema Monitoring ...

Windows 10
Windows 10 Fall Creators Update Fehler (13)

Frage von ZeroCool23 zum Thema Windows 10 ...