hardexit
Goto Top

If IP Adresse, Fehler beim Auswerten

Hallo,

ich besitze die IP Adresse 152.22.200.12.
Also habe ich folgendes Script geschrieben, Das obere ipconfig leitet mich korrekt weiter auf VPN, aber das Untere leitet mich weiter auf EXTERN um. Nun verstehe ich aber nicht warum, da ich gerne auf INTERN weitergeleitet werden möchte so wie es sich, aus meiner Sicht, auch gehört.

@ECHO off
TITLE Laufwerksverbindung

ipconfig | find /c "152.22." >NUL 2>NUL  
IF errorlevel==0 GOTO VPN
IF errorlevel==1 GOTO EXTERN

:VPN
ipconfig | find /c "152.22.142." >NUL 2>NUL  
IF errorlevel==0 GOTO EXTERN
IF errorlevel==1 GOTO INTERN


Kann mir einer dazu einen Tipp gehen wie ich das verbessern kann?
Vielen Dank für eure Mühe.

Content-ID: 269098

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

Ausgedruckt am: 25.11.2024 um 17:11 Uhr

Biber
Lösung Biber 14.04.2015 aktualisiert um 16:01:26 Uhr
Goto Top
1) richtige Syntax verwenden bzw. dich für eine entscheiden. Entweder if %errorlevel%==1 oder if errorlevel 1, aber nienicht if errorlevel==1
2) abfangen, wenn keine der IF-Prüfungen greift (in deinem Beispiel rennst du dann einfach auf ":VPN")
3) wenn du die "IF ERRORLEVEL n "-Syntax nutzt, die ERROLEVEL absteigend prüfen, zuerst das höchste
4) und am wichtigsten: eröffne in diesem Bereich nie wieder einen Beitrag mit "ECHO off".
Nimm bitte "Hallo", "Geehrte Erwachsene" oder ähnlich Bewährtes als Begrüßungsfloskel.

Dann bekommst du nächstes Mal auch nettere Antworten.
HardExit
HardExit 14.04.2015 aktualisiert um 15:03:24 Uhr
Goto Top
Servus Biber ;P
ja sorry für das @echo off, ich hab gar net drann gedacht weil ich da jetzt schon ewig rum wurschtel und einfach keinen kopf mehr für was anderes hatte^^

ok danke schon mal für deine Antwort, was meinst du mit punkt 2 welche errorlevel können denn noch auftreten?
Biber
Biber 14.04.2015 aktualisiert um 16:26:08 Uhr
Goto Top
Moin Tealk144,

der Hinweis hiess ja nicht "prüfe auch höhere Errorlevel, weil es andere geben kann", sondern "abfangen, wenn keine Prüfung greift".

In dem Beispiel oben wird (okay, wegen falscher Syntax) geprüft - verdeutlicht formuliert:
IF festertext==0 GOTO VPN
IF festertext==1 GOTO EXTERN

Keine der beiden Bedingungen kann jemals ein irgendwohin-gebeamt-werden durch GOTO zur Folge haben.
Also wird die die nächste Zeile abgearbeitet und damit der Block, der mit ":VPN" beginnt.

Richtig wäre hier eine unbedingte Sprunganweisung "goto unerwarteterDenkfehler".
In diesen Block schreiben gewitzte Coder meist ein "Echo Diese Zeile wirst du niemals sehen!"
Hab ich jedenfalls schon oft gelesen, manchmal auch auf englisch.

Oder, wenn du keine unerwarteten Fehler erwartest *fg*, dann schreib zumindest ein "GOTO :eof", denn da ist der Batch definitiv zu und am Ende.


Grüße
Biber