Немного неясно, в чем именно проблема, с которой вы сталкиваетесь, так как вы не предоставляете вывод или снимок экрана того, что вам не нравится, но я объясню две наиболее вероятные проблемы, которые я вижу:
Учитывая, что ваш скрипт называется ping.bat
и выглядит так:
ping example.com
затем интерпретатор (cmd.exe
) ищет / исследует пути в переменной среды %PATH%
для чего-то, что выглядит как ping
... и делает это, добавляя каждый суффикс из %PATHEXT%
который содержит что-то подобное .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
. Итак, вызов ping
из ping.bat
приводит к поиску ping.com
ping.exe
ping.bat
и так далее. Интерпретатор найдет ping.bat
в текущем рабочем каталоге (ваш ping.bat
) и вызовет его.
Итак, у вас будет хорошая рекурсия : ping.cmd выполняет первую строку, ищет "ping", находит «ping.cmd», выполняет первую строку, ищет "ping", находит «ping.cmd», выполняет первая строка, ищет "ping", находит "ping.cmd" ...
Вторая проблема, с которой вы можете столкнуться:
Интерпретатор командного файла обычно повторяет команды, которые вы записали в файл .bat/.cmd. Таким образом, что-то вроде этого ping www.superuser.com
будет выглядеть так:
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
Если вы хотите избавиться от C:\Users\XYZ\Desktop>ping www.superuser.com
в выходных данных скрипта, тогда вам нужно либо добавить каждую строку перед @
(например, '@ping www.superuser. com ') в сценарии или поместите @echo off
перед кучей командных строк, которые вы хотите выполнить "спокойно".
TL; DR; Не называйте ваши файлы bat такими же, как существующие программы.