Ich möchte lernen, Batch-Skripte zu schreiben, und habe versucht, ein Skript zu erstellen, das diesen Befehl automatisch einmal in der Befehlszeile ausführt:
%Vor%und zeigt den Ping an, so würde es so aussehen:
%Vor%Mein Problem ist, dass dies zur Folge hat, wenn ich diesen Befehl als Skript ausführe:
Mein Problem ist, dass es den Befehl ping überhaupt nicht ausführen wird, sondern fügen Sie den Befehl unbegrenzt oft in das Konsolenfenster ein, wie es im Screenshot gezeigt wird.
Ich habe gerade eine neue Datei erstellt, ping www.google.de -t
darin geschrieben, sie als ping.bat
Datei gespeichert und mit Doppelklick ausgeführt.
Also wie schreibe ich die Batch-Datei, um diesen Befehl nur einmal zu starten und das Ping-Ergebnis anzuzeigen?
Geben Sie in das Eingabeaufforderungsfenster ping /?
ein und lesen Sie die kurze Hilfeausgabe, nachdem Sie auf RETURN gedrückt haben. Oder werfen Sie einen Blick auf
Erklärung für die Option -t
von Microsoft gegeben:
Pingt den angegebenen Host, bis er gestoppt wird. Um Statistiken anzuzeigen, geben Sie Control-Break ein. Um zu stoppen geben Sie Control-C ein.
Vielleicht möchten Sie Folgendes verwenden:
%Vor%Oder um zuerst zu prüfen, ob ein Server verfügbar ist:
%Vor%Ich bin sicher, dass Sie die resultierende Fledermausdatei als "ping.bat" benannt haben müssen. Wenn Sie Ihre Datei umbenennen, sagen Sie pingXXX.bat. Es wird definitiv funktionieren. Probieren Sie es aus.
Meine Batch-Datei enthält nur den folgenden Code
%Vor%mit Dateiname als ping.bat
mit Dateiname abc.bat
Ich bin mir nicht sicher, was Sie genau versuchen, aber Ihr veröffentlichter Code sollte gut funktionieren. Falls der Befehl nicht angezeigt werden soll, fügen Sie @echo off
beim Start Ihres Skripts hinzu. Wenn ich den unten stehenden Code in einer Datei namens test.bat
habe und die Eingabeaufforderung als test.bat
ausführen soll, funktioniert es einwandfrei.
Um Ihre EDIT:
zu adressieren, bei der das Hauptproblem% ping
command ist, war nicht erkennbar. Der Befehl ping
befindet sich normalerweise unter C:\Windows\System32\
, wobei C:\
das Stammverzeichnis ist. Falls das root-Verzeichnis anders ist, können Sie das root-Verzeichnis mit %SystemRoot%
-Umgebungsvariablen aufrufen und wie
Eine andere Möglichkeit zu sehen, ob der Befehl, den Sie ausführen möchten, erkennbar ist oder nicht, ist die Verwendung von WHERE
-Befehl wie unten
Wenn der Befehl erkennbar ist; es wird den Pfad wie
ausgeben %Vor%Else führt zu einem Fehler
Ich weiß, warum, Sie verwenden den Dateinamen "Ping" und Sie verwenden den Code "Ping", es versucht nur, sich selbst zu starten, da das ausgewählte Verzeichnis in dem die Datei ist, wenn Sie es tatsächlich pingen möchten , setze das vor dem ping-Befehl: "cd C: \ Windows \ system32", die eigentliche Datei, die den Server anpingt, ist da drin!
Für bash (OSX) ping google.com -c 1
(die Suche in der Suche brachte Sie hierher)
Sie müssen in diesem Fall nur darüber nachdenken, in welchem Verzeichnis Sie sich auf Ihrem Computer befinden.
Ihr Befehlszeilenfenster zeigt C:\users\rei0d\desktop\
als Ihr aktuelles Verzeichnis an.
Das einzige, was Sie wirklich tun müssen, ist:
Entferne die desktop
indem du "nach oben gehst" mit dem Befehl cd ..
.
Der vollständige Befehl wäre also:
%Vor%Sie haben zwei Skripte namens test.bat und ping.bat im selben Ordner:
Skript test.bat enthält eine Zeile:
%Vor%Skript ping.bat enthält folgende Zeilen:
%Vor%Bei der Ausführung von "test.bat" lautet das Ergebnis auf CMD:
%Vor%Warum? Weil "test.bat" die "ping.bat" aufruft ("ping google.com" wird als Aufruf des Skripts "ping.bat" interpretiert). Gleiches passiert, wenn das Skript "ping.bat" "ping google.com" enthält. Das Skript wird sich selbst in einer Schleife ausführen.
Einfache Möglichkeiten, dies zu vermeiden:
- Benenne dein Skript nicht "ping.bat".
- Sie können das Skript als "ping.bat" benennen, aber innerhalb des Skripts verwenden Sie "ping.exe google.com" anstelle von "ping google.com".
Tags und Links ping batch-file