Batch-File - Rückgabe eines Befehls weiterverarbeiten

Hier kommt alles rein was mit Programmieren zu tun hat ( HTML, Java, Perl etc. )
Antworten
Teletrabi
Null-Leiter
Beiträge: 3698
Registriert: Dienstag 10. Februar 2004, 21:00
Kontaktdaten:

Batch-File - Rückgabe eines Befehls weiterverarbeiten

Beitrag von Teletrabi »

Moin ihrs,

versuche gerade die Ausgabe des bekannten ping-Befehls weiterzuverarbeiten.
Folgender Code funktioniert zwar, speichert aber die Ausgabe in einer Datei zwischen. Das müsste sich doch auch noch eliminieren lassen.

Code: Alles auswählen

ping %1 -n 1 -w 200 > C:\pingtest.txt

for /F "tokens=11" %%i in (pingtest.txt) do set lost=%%i

IF NOT [%lost%]==[(0%%] GOTO VERLOREN
so ganz hab ich die mittlere Zeile auch noch nicht durchschaut, warum sie eigentlich funktioniert. Ursprünglich steckte da noch eine Funktion dazwischen, die die letzte Zeile der Ping-Ausgabe auslas und in eine weitere Datei schrieb, von wo sie dann mit der mittleren Zeile gelesen und der Wert für den Paketverlust nach %lost% geschrieben wurde.
Funktioniert unerwarteter Weise aber auch, wenn man die Datei mit der gesamten Ping-Ausgabe als Quelle dort einsetzt ohne explizit die letzte Zeile freizustellen.

Nunja, wie auch immer, letzten Endes wäre es schön, wenn man dort überhaupt keine Datei mehr beschreibt. Die mittlere Zeile zu ersetzen mit
for /F "tokens=11" %%i in (ping %1 -n 1 -w 200) do set lost=%%i
klappt hingegen nicht. Egal ob man den ping-Befehl nochmal in Klammern packt oder nicht.

Irgendwer eine Idee?
Funkenschlosser
Null-Leiter
Beiträge: 360
Registriert: Samstag 24. Juni 2006, 10:02

Beitrag von Funkenschlosser »

Eine Lösung habe ich auch nicht zur Hand, kann Dir aber sagen, weshalb Dein Vorschlag nicht funktioniert.

In den runden Klammern der FOR-Anweinsung muss eine Datei oder Dateimaske stehen. Ein Befehl ist dort nicht zulässig. So etwas kenne ich nur von Unix-Shells. Wie das unter Windows geht und ob das überhaupt geht, weiß ich nicht aus dem Kopf

Funky
Teletrabi
Null-Leiter
Beiträge: 3698
Registriert: Dienstag 10. Februar 2004, 21:00
Kontaktdaten:

Beitrag von Teletrabi »

Moin,

korrektur zum posting oben - sollte egal ob mans nochmal in anführungszeichen packt heißen. gemeint waren diese: " - geht nicht.

Klappt nun aber - wenn man ' nutzt...
gnye17

Beitrag von gnye17 »

Hallo Teletrabi,

es gab mal Programme, mit denen man den ErrorLevel eines Batch-Jobs festlegen kann. Und dann gab's noch exit /b. Lies mal auf dieser Seite nach. Der für Deine Fragestellung interessante Teil beginnt etwa in der Mitte der Seite. Ob das unter den heutigen Windows-Versionen noch funktioniert, kann ich Dir nicht sagen. Musst Du halt ausprobieren.

Schöne Grüße,
Gnye
Antworten