PDA

Vollständige Version anzeigen : Pingen mit einer BATchdatei



Katana und Wakizashi
18-11-2009, 11:50
Hallo,

Ich möchte eine BATchdatei erstellen, welche ständig Pingt und alle Fehler in C:\ping.txt schreibt

Für die ganze Liste kam ich auf dies:

ping -t xxxxxxx >C:\ping.txt

mfg Katana und Wakizashi

Edit: Ich bin ein Batch-noob
Edit2: Währe ein IF/THEN/ELSE wie im Excel möglich?

Fry_
18-11-2009, 11:57
Wenn Du nur Fehler erfassen willst, kommst Du um ein wenig scripten nicht drumrum. Hier findest Du schon mal Hinweise:
Hey, Scripting Guy! Blog : Why Doesn't My Ping Script Run on Windows 2000 Computers? (http://blogs.technet.com/heyscriptingguy/archive/2004/09/14/why-doesn-t-my-ping-script-run-on-windows-2000-computers.aspx)

Katana und Wakizashi
18-11-2009, 11:58
Danke Viel mals, meine Englischkenntnise sind leider nicht so toll....

MBCC
18-11-2009, 12:02
Hi,

versuch mal so:

ping XXXXXXX >> c:\ping.txt 2>&1

so landet der ganze Output in c:\ping.txt. Die Datei wird bei jedem Ausführen fortgesetzt. Und so:

ping XXXXXXX > c:\ping.txt 2>&1

wird sie jedes Mal neu erstellt (überschrieben).

Gruß.

Fry_
18-11-2009, 12:03
Danke Viel mals, meine Englischkenntnise sind leider nicht so toll....

Dann steig mal hier ein:
Wie Ping ich einen PC mit VBS - administrator (http://www.administrator.de/index.php?content=65598#258929)

MBCC
18-11-2009, 12:03
na mit

ping XXXXX -t

wird das Ping einfach laufen, bis du die Batch abbrichst.

gion toji
18-11-2009, 12:05
So wie ich das sehe, ist das Problem nicht, die Ausgaben von ping zu speichern, sondern nur die Fehlerausgaben rauszufiltern

ich habe jetzt kurz mit ping auf XP rumexperimentiert und folgendes rausgefunden:
ping -n 1 google.de setzt ERRORLEVEL auf 0
ping -n 1 lkjerlk.de setzt ERRORLEVEL auf 1 <- Fehler
D.h. du könntest eine Endlosschleife machen, darin pingen und dann je nach Errorlevel das Ergebnis wegspeichern
nicht schön, aber hässlich :rolleyes:
alternativ könntest du dir natürlich auch ein richtiges Betriebssystem nichtkaufen :cool:

Fry_
18-11-2009, 12:11
..
ich habe jetzt kurz mit ping auf XP rumexperimentiert und folgendes rausgefunden:
ping -n 1 google.de setzt ERRORLEVEL auf 0
ping -n 1 lkjerlk.de setzt ERRORLEVEL auf 1 ...

:verbeug:

That's it !

MBCC
18-11-2009, 12:12
mit "-n Zahl" gibst du die Anzahl der Echoaufforderungen. Die Fehler werden über Kanal 2 ausgegeben, sonst geht der Output über Kanal 1. Deswegen
bewirkt

ping XXXXXXX -t >> c:\ping.txt 2>&1

dass der ganze Output in die Datei umgeleitet wird - auch die Fehler, wie gewollt. Auf den Bildschirm wird nicht ausgegeben.

gion toji
18-11-2009, 12:28
mit "-n Zahl" gibst du die Anzahl der Echoaufforderungen. ja, das ist auch so gewollt


dass der ganze Output in die Datei umgeleitet wird - auch die Fehler, wie gewollt. genau das ist doch das Problem: alle Ausgaben landen in der gleichen Datei. Ich habe die Aufgabe so verstanden, daß nur die Ausgaben im Fehlerfall in der Datei landen sollen. Hätte man ein Tool, das reguläre Ausdrücke versteht, dann könnte man den ganzen Wust auseinanderklamüseln
Wenn man i-wie ausschließlich stderr (heisst er bei windows auch so?) wegloggen könnte, dann wäre das Problem gelöst

MBCC
18-11-2009, 12:44
ach so verstehe. Dann so:

ping XXXXXXX -t > c:\ping.txt >&2

Damit leitest du nur die Fehler in die Datei um. Falls der Host (das Ziel) da ist, erscheint der Output auf dem Bildschirm.

SeanMates
20-11-2009, 11:47
Villeicht solltest du kurz erleutern warum du pingen willst ?
Und warum Batch ?