it-swarm.com.de

Wie kann ein Server innerhalb einer Batch-Datei nur einmal gepingt werden?

Ich möchte lernen, wie man Batch-Skripts schreibt, und habe versucht, ein Skript zu erstellen, das diesen Befehl automatisch einmal in der Befehlszeile ausführt:

ping www.google.de -t

und zeigt den Ping an, also würde es so aussehen:

Reply from XXX.XXX.X.XX: time=30ms
Reply from XXX.XXX.X.XX: time=31ms
Reply from XXX.XXX.X.XX: time=29ms

Mein Problem ist, dass dies dazu führt, wenn ich diesen Befehl als Skript ausführt:

Screenshot showing output on running the batch file.

Mein Problem ist, dass der Ping-Befehl nicht ausgeführt wird, sondern der Befehl unbegrenzt in das Konsolenfenster eingefügt wird, wie im Screenshot gezeigt.

Ich habe gerade eine neue Datei erstellt, ping www.google.de -t darin geschrieben, als ping.bat-Datei gespeichert und sie mit einem Doppelklick ausgeführt.

Wie schreibt man also die Batch-Datei, um diesen Befehl nur einmal zu starten und das Ping-Ergebnis anzuzeigen?

9
Peter

Geben Sie in einem Eingabeaufforderungsfenster ping /? ein und lesen Sie die kurze Hilfeausgabe, nachdem Sie RETURN gedrückt haben. Oder werfen Sie einen Blick auf

  • Ping - Windows-Dokumentation XP
  • Ping - Microsoft TechNet-Artikel

Erläuterung zur Option -t von Microsoft:

Pingt den angegebenen Host bis zum Stoppen. Um Statistiken anzuzeigen und fortzufahren, geben Sie Control-Break ein. Um den Typ Control-C zu stoppen.

Vielleicht möchten Sie verwenden:

@%SystemRoot%\system32\ping.exe -n 1 www.google.de

Oder zunächst prüfen, ob ein Server verfügbar ist:

@echo off
set MyServer=Server.MyDomain.de
%SystemRoot%\system32\ping.exe -n 1 %MyServer% >nul
if errorlevel 1 goto NoServer

echo %MyServer% is availabe.
rem Insert commands here, for example 1 or more Net Use to connect network drives.
goto :EOF

:NoServer
echo %MyServer% is not availabe yet.
pause
goto :EOF
15
Mofi

Ich bin sicher, dass Sie die resultierende bat-Datei als "ping.bat" bezeichnet haben müssen. Wenn Sie Ihre Datei in etwas anderes umbenennen, sagen Sie pingXXX.bat. Es wird definitiv funktionieren. Versuch es.

meine Batchdatei enthält nur den folgenden Code

ping 172.31.29.1 -t

mit Dateiname als ping.bat enter image description here

mit Dateiname abc.bat

enter image description here

33

Sie wissen nicht genau, was Sie versuchen, aber Ihr veröffentlichter Code sollte einwandfrei funktionieren. Falls Sie nicht möchten, dass der Befehl angezeigt wird, fügen Sie @echo off beim Start Ihres Skripts hinzu. Wenn ich den untenstehenden Code in einer Datei mit dem Namen test.bat habe und die Eingabeaufforderung als test.bat ausführen, funktioniert das problemlos.

@echo off
ping www.google.de -t

Um Ihren EDIT: zu adressieren, dessen Hauptanliegen ping ist, konnte der Befehl nicht erkannt werden. Der Befehl ping befindet sich im Allgemeinen unter C:\Windows\System32\, wobei C:\ das Stammverzeichnis ist. Für den Fall, dass sich das Stammverzeichnis unterscheidet, können Sie das Stammverzeichnis mithilfe der Umgebungsvariablen %SystemRoot% abrufen und "Gefällt mir" sagen

%SystemRoot%\Windows\System32\PING.EXE www.google.de -t

Eine andere Möglichkeit, um festzustellen, ob der Befehl, den Sie ausführen möchten, erkennbar ist oder nicht, besteht darin, den Befehl WHERE wie folgt zu verwenden

where ping

Wenn der Befehl erkennbar ist; Es wird der Pfad wie ausgegeben 

C:\Windows\System32\PING.EXE

Andernfalls wird ein Fehler angezeigt

4
Rahul

wenn Sie den Namen "ping.bat" verwenden möchten, besteht ein kleiner Trick darin, diesen Code zu verwenden:

@echo off
cd\ 
ping google.com -t

Fügen Sie einfach "cd \" hinzu und es geht Ihnen gut ...;)

2
Phantom

Ich weiß warum, Sie verwenden den Dateinamen "ping" und Sie verwenden den Code "ping". Er versucht einfach, sich selbst auszuführen, weil das ausgewählte Verzeichnis in dem sich diese Datei befindet, wenn Sie wirklich ping möchten, setzen Sie dies Vor dem Ping-Befehl: "cd C:\Windows\system32" ist die eigentliche Datei, in der der Server ping ist!

2
JacobRocks12

Für bash (OSX) ping google.com -c 1 (Incase-Suche hat Sie hierher gebracht)

1
Ashley Coolman

Pingen Sie von der Batch-Datei aus nur einmal eine IP mit dem folgenden Befehl:
Ping 192.168.199.10 -n 1

 enter image description here

1
A.Gopal Reddy

Sie haben 2 Skripts namens test.bat und ping.bat im selben Ordner:

Skript test.bat enthält eine Zeile:

ping google.com

Das Skript ping.bat enthält folgende Zeilen: 

@echo off
echo Hello!
pause

Beim Ausführen von "test.bat" wird das Ergebnis in CMD wie folgt aussehen:

Hello!
Press any key to continue . . .

Warum? Weil "test.bat" die "ping.bat" aufruft ("ping google.com" wird als Aufruf des Skripts "ping.bat" interpretiert) .. .. Das Gleiche geschieht, wenn das Skript "ping.bat" "ping" enthält google.com ". Das Skript führt sich selbst in einer Schleife aus.

Einfache Möglichkeiten, dies zu vermeiden:

  1. Nennen Sie Ihr Skript nicht "ping.bat".
  2. Sie können das Skript als "ping.bat" bezeichnen, aber innerhalb des Skripts "ping.exe google.com" anstelle von "ping google.com" verwenden.
0
DragosD

ich habe Mofi-Beispiel verwendet und einige Parameter geändert, nein, Sie können -t

@% SystemRoot%\system32\ping.exe -n -1 4.2.2.4

0
deadManN

Schreiben Sie einfach den Befehl "ping your server IP" ohne das doppelte Anführungszeichen. Speichern Sie den Dateinamen als Dateiname.bat und führen Sie dann die Batchdatei als Administrator aus

0
Mahfuze

Das einzige, was Sie in diesem Fall beachten müssen, ist, in welchem ​​Verzeichnis Sie sich auf Ihrem Computer befinden . Ihr Befehlszeilenfenster zeigt C:\users\rei0d\desktop\ als Ihr aktuelles Verzeichnis.

Das einzige, was Sie wirklich tun müssen, ist: 
Entfernen Sie die desktop, indem Sie mit dem Befehl cd .. "nach oben gehen". 

Der vollständige Befehl wäre also: 

cd ..
ping XXX.XXX.XXX.XXX -t
0
Tor