leknilk0815
Goto Top

DOS Batch Errorlevel geht unter XP, aber nicht unter W2K

Problem mit Errorlevel unter W2K

Hallo zusammen,

ich muß innerhalb einer Batch den Errorlevel von Ping auswerten:

ping tonixp
if errorlevel 1 goto lanstart1

unter XP funktioniert es (wenn kein Ping, geht er zu lanstart1)
unter W2K Server ignoriert er den goto und macht einfach weiter.

Ich finde den Fehler einfach nicht, für Hilfe wäre ich dankbar!

Gruß - Toni

Content-ID: 32738

Url: https://administrator.de/forum/dos-batch-errorlevel-geht-unter-xp-aber-nicht-unter-w2k-32738.html

Ausgedruckt am: 23.12.2024 um 06:12 Uhr

Biber
Biber 17.05.2006 um 22:02:20 Uhr
Goto Top
Moin Toni,

sind ja nur begrenzt viele Beteiligte in den zwei Zeilen, von daher auch wenige potentiell Schuldige.

Es gibt ja nur zwei wahrscheinliche Erklärungen:

1) die Ping.exe vom Win2000S (oder W2003S??) liefert fälschlicherweise bei Misserfolg nicht ein Errorlevel größer 1
-oder-
2) die "if errorlevel"-Syntax des CMD-Interpreters hätte sich geändert.

Check:
Beide Möglichkeiten kannst Du prüfen, indem Du es im Batch (oder zum Test am CMD-Prompt) um eine Zeile erweiterst:

ping tonixp
echo Errorlevel ist: [%errorlevel%]
if errorlevel 1 goto lanstart1

Den Test auf eine marode Ping.exe kannst Du auch einfach machen.
Kopier Dir von dem XP-Rechner die Ping.exe auf den W200x-Server, meinetwegen unter dem Namen "Ping_vonXP.exe" und teste das Verhalten dieser Ping_vonXP auf dem W200xS.

ping_vonXP tonixp
echo Errorlevel ist: [%errorlevel%]
if errorlevel 1 goto lanstart1

So weit erstmal
Biber
leknilk0815
leknilk0815 17.05.2006 um 23:03:48 Uhr
Goto Top
Hi Biber,

hier habe ich, mit Verlaub gesagt, die Arschkarte gezogen.
Die von Dir vorgeschlagenen Tests haben folgendes Ergebnis erbracht:
Ping.exe von W2K (2000) liefert Errorlevel 0
Ping.exe von XP liefert (erwartungsgemäß) Errorlevel 1
Ping.exe aus XP umbenannt auf pingxp.exe liefert auf W2K "Entry Point not found"
gleiches Ergebnis, wenn man nicht umbenennt und dafür den Pfad angibt

unter XP laufen beide Ping.exe (mit Pfadangabe), wobei die W2K- Ping Errorlevel 0 liefert, die XP- Ping Errorlevel 1

nun ist guter Rat teuer...

auf jeden Fall mal vielen dank, ich weiß nun wenigstens, wo das Problem liegt

Gruß - Toni
gogoflash
gogoflash 17.05.2006 um 23:48:08 Uhr
Goto Top
Hi,

da die Unterscheidung nicht übers Errorlevel geht, vielleicht über die Ausgabe selbst eine Entscheidung durchführen.

goto :end
REM tonixp gibt Antwort
:sub1
goto :end
REM tonixp gibt keine Antwort
:sub2
Mach was...
goto :end

Jetzt könnest Du noch ein Problem bekommen, wenn Server und Client unterschiedliche Sprachen nutzen.
Dann als Antwort "TTL=128" oder so ähnlich eingeben, dies ist bei beiden noch gleich.

Oder musst Du den Errorlevel auswerten?


Gruß Miguel
:end
leknilk0815
leknilk0815 18.05.2006 um 08:04:55 Uhr
Goto Top
Hi,

danke, werd ich testen.

zur Frage: nein, ich muß den Errorlevel nicht unbedingt auswerten, wenns anders gehen sollte.
Erreicht soll folgendes werden:
wenn tonixp aktiv, Daten rüberkopieren, Ende
wenn tonixp inaktiv, WOL, Daten rüberkopieren, Tonixp runterfahren, Ende

Wenn das mit Deinem Script läuft, bin ich zufrieden, irgendwann steige ich von W2KS sowieso um auf W2K3S, und da würde es auch mit Ping funktionieren.

Verwunderlich ist die Pingerei aber trotzdem...

Danke mal und Gruß - Toni
Biber
Biber 18.05.2006 um 15:22:53 Uhr
Goto Top
Moin Toni,

mit Miguels vorschlag sollte es gehen...

Verwunderlich ist die Pingerei aber trotzdem...
Wieso? Wie heißt die Firma, von der ihr das Ping gekauft habt? face-wink

Eventuell haben die allerdings irgendwo einen Bugfix nachgeschoben - ich würde zumindest nochmal auf den M$-Seiten danach suchen.

Auf W2000 (nicht Server) funktioniert die ping.exe. IMHO.
Sonst poste doch bitte von Deiner ping.exe (der maroden) mal
- Versionsnummer
- Datum
- Größe
hier im Forum.
Eventuell kann Dir dann jemand eine funktionierende zumailen. Bezahlt/lizenziert hab ihr die ja eigentlich.

Grüße
Biber
leknilk0815
leknilk0815 20.05.2006 um 16:34:04 Uhr
Goto Top
Hi Biber,

ich habe alle Versionen, die ich hatte, durchprobiert. Teilweise sind die Versionsnummern bei englisch und deutsch gleich, ändert auch nichts am Ergebnis.
Fazit:
Errorlevel bei W2K Server geht nicht mit Ping

Die Lösung von gogoflash funktioniert, mein Backup damit ebenfalls (Danke an gogoflash)

hier noch die Auswertung der Tests (falls es jemand interessiert)

Danke nochmal an Biber und gogoflash!

Gruß und schönes WE - Toni

Ergebnis Ping von XP Prof SP2 aus:

Version 5.0.2134.1
Ping server [192.168.1.11] mit 32 Bytes Daten:Antwort von 192.168.1.11
errorlevel ist 0
Version 5.0.2134.1
Ping xpwork.domain.de [192.168.1.51] mit 32 Bytes Daten:Zeitberschreitung der Anforderung
errorlevel ist 0
Version 5.0.2134.1
Pinging server [192.168.1.11] with 32 bytes of data:Reply from 192.168.1.11
errorlevel ist 0
Version 5.0.2134.1
Pinging xpwork.domain.de [192.168.1.51] with 32 bytes of data:Request timed out
errorlevel ist 0
Version 5.0.2134.1
Pinging server [192.168.1.11] with 32 bytes of data:Reply from 192.168.1.11
errorlevel ist 0
Version 5.0.2134.1
Pinging xpwork.domain.de [192.168.1.51] with 32 bytes of data:Request timed out
errorlevel ist 0
Version 5.2.3790.0
Pinging server [192.168.1.11] with 32 bytes of data:Reply from 192.168.1.11
errorlevel ist 0
Version 5.2.3790.0
Pinging xpwork.domain.de [192.168.1.51] with 32 bytes of data:Request timed out
errorlevel ist 1
Version 5.1.2600.2180
Ping server [192.168.1.11] mit 32 Bytes Daten:Antwort von 192.168.1.11
errorlevel ist 0
Version 5.1.2600.2180
Ping xpwork.domain.de [192.168.1.51] mit 32 Bytes Daten:Zeitberschreitung der Anforderung
errorlevel ist 1
Version 5.1.2600.0
Pinging server [192.168.1.11] with 32 bytes of data:Reply from 192.168.1.11
errorlevel ist 0
Version 5.1.2600.0
Pinging xpwork.domain.de [192.168.1.51] with 32 bytes of data:Request timed out
errorlevel ist 1

Ergebnis Ping von Server W2K SP4 aus:

Version 5.0.2134.1
Ping server.domain.de [192.168.1.11] mit 32 Bytes Daten:Antwort von 192.168.1.11
errorlevel ist 0
Version 5.0.2134.1
Ping xpwork [192.168.1.51] mit 32 Bytes Daten:Zeitberschreitung der Anforderung
errorlevel ist 0
Version 5.0.2134.1
Pinging server.domain.de [192.168.1.11] with 32 bytes of data:Reply from 192.168.1.11
errorlevel ist 0
Version 5.0.2134.1
Pinging xpwork [192.168.1.51] with 32 bytes of data:Request timed out
errorlevel ist 0
Version 5.0.2134.1
Pinging server.domain.de [192.168.1.11] with 32 bytes of data:Reply from 192.168.1.11
errorlevel ist 0
Version 5.0.2134.1
Pinging xpwork [192.168.1.51] with 32 bytes of data:Request timed out
errorlevel ist 0
Version 5.2.3790.0
errorlevel ist 128
Version 5.2.3790.0
errorlevel ist 128
Version 5.1.2600.2180
errorlevel ist 128
Version 5.1.2600.2180
errorlevel ist 128
Version 5.1.2600.0
errorlevel ist 128
Version 5.1.2600.0
errorlevel ist 128
Biber
Biber 20.05.2006 um 16:54:56 Uhr
Goto Top
@leknilk0815
Danke für die Recherche, Toni.

Ist schon eine Information, die ich im Hinterkopf behalten werde.

Denn diese Ping-Errorlevel-Auswertung ist durchaus auch in Batches in Produktivumgebungen eingebaut.
Und nicht nur da, wo ich aktiv war.
Was ich nicht begreife - was um Himmels Willen wurde bei M$ beim Funktionstest der Ping.exe geprüft?
Mögliche Tippfehler im Wort pinging? Biologische Abbaubarkeit? Politically correctness?
Zu allem Überfluß hat M$ den gleichen Bug bei der Ping.exe schon mal ausgeliefert - bei einer der ersten NT-Versionen...
*kopfschüttel..kopfschüttel..kopfschüttel...*

Grüße
Biber