Es ist ein bisschen unklar, mit welchem Problem Sie genau konfrontiert sind, da Sie keine Ausgabe oder keinen Screenshot von dem bereitstellen, was Ihnen nicht gefällt, aber ich werde die beiden wahrscheinlichsten Probleme erklären, die ich sehe:
Vorausgesetzt, Ihr Skript wird aufgerufen ping.batund sieht folgendermaßen aus:
ping example.com
dann cmd.exedurchsucht / prüft der Interpreter ( ) die Pfade in der Umgebungsvariablen %PATH%nach etwas, das aussieht ping... und tut dies, indem er jedes Suffix anfügt, von %PATHEXT%dem etwas wie enthält .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC. Also, nur pingvon den ping.batLeads zu einer Suche nach ping.com ping.exe ping.batund so weiter anrufen . Der Dolmetscher findet ein ping.batim aktuellen Arbeitsverzeichnis (Ihr ping.bat) und ruft es auf.
Sie haben hier also eine schöne Rekursion : ping.cmd führt die erste Zeile aus, sucht nach "ping", findet "ping.cmd", führt die erste Zeile aus, sucht nach "ping", findet "ping.cmd", führt aus Die erste Zeile sucht nach "ping" und findet "ping.cmd" ...
Das zweite Problem, das Sie möglicherweise haben, ist Folgendes:
Der Interpreter der Batch-Datei wiederholt normalerweise die Befehle, die Sie in die .bat / .cmd-Datei geschrieben haben. So etwas ping www.superuser.comsieht also so aus:
C:\Users\XYZ\Desktop>ping www.superuser.com
Ping wird ausgeführt für superuser.com [64.34.119.12] mit 32 Bytes Daten:
Antwort von 64.34.119.12: Bytes=32 Zeit=110ms TTL=46
Antwort von 64.34.119.12: Bytes=32 Zeit=107ms TTL=46
Wenn Sie C:\Users\XYZ\Desktop>ping www.superuser.comdie Ausgabe des Skripts @entfernen möchten, müssen Sie entweder jeder Zeile ein (z. B. '@ping www.superuser.com') im Skript voranstellen oder ein @echo offvor den Befehlszeilen einfügen wollen "leise" ausführen.
TL; DR;
Rufen Sie Ihre Bat-Dateien nicht wie vorhandene Programme auf.
-tmacht es.