Как пинговать сервер только один раз из пакетного файла?

Я хочу научиться писать сценарии и пытался создать скрипт, который автоматически запускает эту команду в командной строке после:

ping www.google.de -t

и отображает пинг, поэтому он будет выглядеть так:

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

моя проблема в том, что это приведет к этому, когда я выполняю эту команду как скрипт:

Screenshot showing output on running the batch file.

моя проблема в том, что он не будет выполнять команду ping вообще, а просто вставляет команду неограниченное время в окно консоли, как показано на скриншоте.

Я только что создал новый файл, написал ping www.google.de -t в нем, сохранил его как ping.bat file и выполнил его с двойным щелчком по нему.

Итак, как написать пакетный файл, чтобы запустить эту команду только один раз и отображать результат пинга?

11 ответов


введите в окне командной строки ping /? и прочитайте короткий выход справки после отжимать возвращение. Или посмотрите на

  • пинг - документация по Windows XP
  • пинг - статья Microsoft TechNet

объяснение опции -t данный Microsoft:

пингует указанный хост до остановки. Для просмотра статистики и продолжения введите Control-Break. Чтобы остановить тип Контроль-С.

вы можете использовать:

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

или сначала проверить, доступен ли сервер:

@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

Я уверен, что вы должны были назвать результирующий файл bat как "ping.летучая мышь." Если вы переименуете файл на что-то другое, скажите pingXXX.летучая мышь. Это, безусловно, работать. Попробовать ее.

мой пакетный файл содержит только код ниже

ping 172.31.29.1 -t

С именем файла как ping.летучая мышь enter image description here

С именем файла ABC.летучая мышь!--2-->

enter image description here


не уверен, что именно вы пытаетесь, но ваш опубликованный код должен работать нормально. если вы не хотите, чтобы команда отображалась, добавьте @echo off при запуске скрипта. Если у меня есть приведенный ниже код в файле с именем test.bat и запустить его в командной строке как test.bat это будет работать просто отлично.

@echo off
ping www.google.de -t

в адрес EDIT: где главная забота ping команда была неузнаваема. ping команда вообще будет располагаться под C:\Windows\System32\ здесь C:\ быть корневым каталогом. В случае, если корневой каталог отличается, Вы можете получить корневой каталог с помощью %SystemRoot% переменная окружения и может сказать, как

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

другой способ увидеть, является ли команда, которую вы пытаетесь запустить, узнаваемой или нет, использует ниже

where ping

если команда распознается; он выведет путь, как

C:\Windows\System32\PING.EXE

Else приведет к ошибке


Я знаю, почему вы используете имя файла "ping", и вы используете код "ping", он просто пытается запустить себя, потому что его выбранный каталог в том месте, где этот файл, если вы хотите, чтобы он на самом деле пинг, поместите это перед командой ping: "cd C:\Windows\system32", фактический файл, который пингует сервер, находится там!


Если вы хотите использовать имя " ping.летучая мышь", небольшой трюк, чтобы использовать этот код:

@echo off
cd\ 
ping google.com -t

просто добавьте, что " cd\", и вы в порядке... ;)


для bash (OSX) ping google.com -c 1 (incase поиск привел вас сюда)


из пакетного файла, ping ip только один раз, используя следующую команду:
Пинг 192.168.199.10-n 1

enter image description here


Я использовал образец Mofi и изменил некоторые параметры, нет, вы не можете сделать-t

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


единственное, что вам нужно подумать в этом случае, в каком каталоге вы находитесь на вашем компьютере. Окно командной строки показывает C:\users\rei0d\desktop\ как ваш текущий каталог.

поэтому единственное, что вам действительно нужно сделать, это:
Удалить desktop путем "идти вверх" с командой cd ...

таким образом, полная команда будет:

cd ..
ping XXX.XXX.XXX.XXX -t

наличие 2 скриптов под названием test.бита и пинг.летучая мышь в той же папке:

тестовый скрипт.bat содержит одну строку:

ping google.com

скрипт ping.bat содержит следующие строки:

@echo off
echo Hello!
pause

тест исполнителей ".bat " результат на CMD будет:

Hello!
Press any key to continue . . .

почему? Потому что "тест.bat "вызывает" ping.bat " ("пинг google.com" интерпретируется как вызов " ping.bat " script). То же самое происходит, если скрипт "ping".bat "содержит" ping google.com". Сценарий будет казнить себя в петле.

простые способы избежать этого:

  1. не имя скрипта "пинг.летучая мышь."
  2. вы можете назвать сценарий как " ping.bat", но внутри скрипта используйте " ping.exe google.com "вместо" ping google.com".

просто напишите команду "ping your server IP" без двойной кавычки. сохранить имя файла в качестве имени файла.bat, а затем запустите пакетный файл от имени администратора