Warum wird der Ping-Befehl in meiner Batchdatei in einer Schleife ausgeführt und navigiert zum Anfang?

447
Nils

Ich habe eine .BATDatei in Windows 10 erstellt, die folgende Zeilen enthält:

set /p ipadress="Please select your favourite IP-adress." echo %ipadress% ping %ipadress% -n 10 

Wenn ich jedoch in dieser Batchdatei zu ping navigiere, kann ich sehen, dass der pingBefehl wiederholt in einer Schleife ausgeführt wird. Ich habe sogar versucht, den Namen in umzubenennen ping.BAT, ping.CMDaber das Ergebnis ist dasselbe.

Es funktioniert bis zur zweiten Zeile. Nachdem die ausgewählte IP-Adresse wiederholt wurde, endet sie in einer Schleife und springt an den Anfang meiner Batch-Datei.

Ausgabe

Ich möchte das Schreiben eines pingBefehls über die Eingabeaufforderung vermeiden, weshalb ich die Stapeldatei erstellt habe. Ich weiß nicht, warum der pingBefehl ständig aufgerufen wird, wenn dieselbe Anweisung in einer Batchdatei abgelegt wird.

Hast du eine Idee?

0
Willkommen bei SuperUser! Wie wird die Batchdatei aufgerufen? Können Sie die Ausgabe anzeigen, die Sie erhalten? Stese vor 5 Jahren 1
Die Batchdatei heißt "Ping2". Nils vor 5 Jahren 0
Benennen Sie es in test.bat um und versuchen Sie es erneut. Stese vor 5 Jahren 0
es tut dasselbe, es endet in einer Schleife. Nils vor 5 Jahren 0
! [Ausgabe] (https://imgur.com/a/v9KqX3c) Nils vor 5 Jahren 0
"1 - Ping" usw. gehört nicht zum betreffenden Code. Einige andere (breitere) Codeschleifen. Kamil Maciorowski vor 5 Jahren 0
danke, jetzt ist es gruselig :) Sie schleifen zum deutschen "alten" Text, der in der Batchdatei nicht mehr vorhanden ist. Nils vor 5 Jahren 0
Sind Sie sicher, dass Sie dieselbe Datei bearbeiten und ausführen? Kamil Maciorowski vor 5 Jahren 0
ja, wir haben das schon ein paar mal überprüft. Nils vor 5 Jahren 0

1 Antwort auf die Frage

1
Kamil Maciorowski

Aus den Kommentaren:

Sie wiederholen den deutschen "alten" Text, der in der Batchdatei nicht mehr vorhanden ist

Eine alte Datei hat ihren Namen ping.batund befindet sich im selben Ordner. ping %ipadress% -n 10von Ihrer neuen Datei ruft die alte Datei auf. Die alte Datei ruft wahrscheinlich ping(also sich selbst) auf, daher die Schleife.

Wenn an der CMD-Eingabeaufforderung ein Befehl ausgegeben wird, sucht das Betriebssystem zuerst nach einer ausführbaren Datei im aktuellen Ordner . Wenn es nicht gefunden wird, wird es durchsucht %PATH%, um es zu finden.

( Quelle, Hervorhebung von mir).

Dies erklärt auch, warum das ping Dienstprogramm in dem von Ihnen bereitgestellten Screenshot absolut keine Ausgabe enthält .

Lösung: Löschen Sie die ping.batDatei oder benennen Sie sie um, oder führen Sie sie explizit aus ping.exe, um zu vermeiden, dass eine andere Erweiterungsdatei mit demselben Namen ausgeführt wird (im aktuellen Ordner / im vorherigen Pfad).

Oder führen Sie ** ping.exe ** explizit aus, um zu vermeiden, dass eine andere Erweiterungsdatei mit demselben Namen ausgeführt wird. (+1) LotPings vor 5 Jahren 2
@LotPings Gute Idee. Meine Antwort ist jetzt ein Community-Wiki, das Ihren nützlichen Kommentar enthält. Kamil Maciorowski vor 5 Jahren 1
Wir haben das noch einmal überprüft, jetzt haben wir eine "Lösung". Auf einem anderen Notebook läuft die Batchdatei einwandfrei. Wir denken, dass wir eine Systemvariable abgestürzt haben, aber wir haben dies in einem Tool überprüft. Jetzt installieren wir Windows neu. hast du irgendeine Idee? Nils vor 5 Jahren 0
Die explizite Ausführung von ping.exe funktioniert nicht so gut. Ich meine, wir lösen das Problem. aber für die zukunft kann es keine lösung sein, windows erneut zu installieren, wegen eines problems in einer batch-datei .... :-) Nils vor 5 Jahren 0
@Nils Also ist vielleicht Ihre `ping.exe` kaputt oder es gibt eine" falsche "` ping.exe`, die vor der richtigen in Ihrem% PATH steht. Kamil Maciorowski vor 5 Jahren 0
Danke, aber warum drucken sie die "alte" deutsche Version aus? Nils vor 5 Jahren 0
Siehe dazu: [Gibt es ein Äquivalent zu "which" in der Windows-Befehlszeile?] (Https://stackoverflow.com/q/304319) Finden Sie heraus, wozu "ping" aufgelöst wird, und Sie finden wahrscheinlich den deutschen Text dort. Kamil Maciorowski vor 5 Jahren 0
guten Morgen. mit "which command" vor der Ping-Zeile funktioniert es, aber es wird ein Syntaxfehler ausgegeben. hast du irgendeine Idee? Nils vor 5 Jahren 0
@Nils "" welcher Befehl "vor der Pinglinie"? Warum vorne? Verstehst du was "was" in Linux ist? Und warum möchte es jemand in Windows haben? Verstehen Sie, dass "command" ein Platzhalter für tatsächliche Befehle wie "ping" oder was auch immer ist? Mein Punkt war, Sie mussten "which ping" (oder einen gleichwertigen Befehl) ausführen, um herauszufinden, * wo sich "ping" auflöst, so dass Sie die gefundene ausführbare Datei untersuchen könnten. Vielleicht wäre es "fake" mit "ping" Deutscher Text Kamil Maciorowski vor 5 Jahren 0