bshuntermaster
Goto Top

Ping -n x Wird nicht durchgeführt

Ich prüfe mit der unten stehenden Batch Datei, ob ein Netzwerkdrucker angeschlossen ist. Als Ergebnis schreibe ich eine Variable in eine Textdatei, mit der ich dann weiterarbeiten kann.
Ich will den Ping auf zwei Abfragen verkürzen, das haut jedoch nicht hin. Seh ich den Wald vor lauter Bäumen nicht, oder was stimmt mit dem Batch nicht?

@echo off

for /f %%a in ('ping -n 2 192.168.1.254 ^|find /C "Antwort von"') do (
if %%a EQU 4 ( SET Vorhanden=Client ist an.)
else SET Vorhanden=Client ist aus.
)

(echo %Vorhanden%)>b.txt && type PingDrucker.txt|more +1>>b.txt && move /y b.txt PingDrucker.txt
del b.txt

Ohne -n 2 haut das einwandfrei hin, dauert aber bei nicht vorhandenem Drucker ewig. Ausserdem schreibt er nicht 'Client ist aus' sondern 'ECHO ist ausgeschaltet (OFF)' in die Textdatei. Die Meldung im cmd - Fenster kann ich nicht lesen, geht zu schnell. Da steht aber irgendwas von 'Der Befehl echo ist falsch geschrieben oder so'
Vielleicht wisst ihr da besser bescheid.

Danke schonmal

Gruß
Benny

Content-Key: 79833

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

Printed on: April 20, 2024 at 03:04 o'clock

Member: bshuntermaster
bshuntermaster Feb 04, 2008 at 10:12:36 (UTC)
Goto Top
Hat sich erledigt. Für alle die es interessiert:

@echo off
set host=192.168.1.200

(echo %Vorhanden%)>PingDrucker.txt

exit

Gruß
Benny
Member: Biber
Biber Feb 04, 2008 at 10:30:36 (UTC)
Goto Top
Moin Jägermeister,

bist Du sicher, dass Du damit jemals den ODER-Fall (%host% antwortet nicht) ausgegeben bekommst?

Grüße
Biber
Member: bshuntermaster
bshuntermaster Feb 04, 2008 at 10:40:40 (UTC)
Goto Top
Tag auch,

habs noch ein bischen Erweitert und getestet. Meine PingDrucker.txt (jetzt protokoll.txt) sieht so aus:

Drucker auf 192.168.1.220 ist offline
Laufwerk Z: auf 192.168.1.200 ist online

Die IP des Druckers stimmt so nicht, deshalb isser offline. Bei richtiger IP (.254) hauts hin.
Ist halt n bischen einfacher und doch geschmacklos (-;

Gruß
Benny
Member: stbewo
stbewo Feb 04, 2008 at 12:12:50 (UTC)
Goto Top
Hi Benny,

mit

for /f %%a in ('ping -n 2 192.168.1.254 ^|find /C "Antwort von"') do (
if %%a EQU 4 ( SET Vorhanden=Client ist an.)

führst Du 2 mal einen Ping aus und mit EQU 4 prüfst Du ob er 4 mal "Anwort von" gefunden hat?? Deshalb funktioniert es ja wohl ohne "-n 2" face-wink

Gruß
Stefan
Member: TuXHunt3R
TuXHunt3R Feb 04, 2008 at 12:15:27 (UTC)
Goto Top
Die Meldung im cmd - Fenster kann ich nicht lesen, geht zu schnell. Da steht aber irgendwas von 'Der Befehl echo ist falsch geschrieben oder so'

In solchen Fällen kannst du unten am Batch einfach den Befehl "Pause" (ohne ") hinschreiben, dann bleibt er stehen und du kannst die Meldungen lesen. Oder du startest den Batch direkt über die CMD-Konsole. Sofern du am Schluss des Batches kein "Exit" drin hast, bleiben dann alle Meldungen stehen.
Member: bshuntermaster
bshuntermaster Feb 04, 2008 at 12:19:10 (UTC)
Goto Top
führst Du 2 mal einen Ping aus und mit
EQU 4 prüfst Du ob er 4 mal "Anwort
von" gefunden hat?

Ok. Wie gesagt... Wald und Bäume

Danke