Как пинговать сервер только один раз из пакетного файла?
Я хочу научиться писать сценарии и пытался создать скрипт, который автоматически запускает эту команду в командной строке после:
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
моя проблема в том, что это приведет к этому, когда я выполняю эту команду как скрипт:
моя проблема в том, что он не будет выполнять команду ping вообще, а просто вставляет команду неограниченное время в окно консоли, как показано на скриншоте.
Я только что создал новый файл, написал ping www.google.de -t
в нем, сохранил его как ping.bat
file и выполнил его с двойным щелчком по нему.
Итак, как написать пакетный файл, чтобы запустить эту команду только один раз и отображать результат пинга?
11 ответов
введите в окне командной строки ping /?
и прочитайте короткий выход справки после отжимать возвращение. Или посмотрите на
объяснение опции -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.летучая мышь
С именем файла ABC.летучая мышь!--2-->
не уверен, что именно вы пытаетесь, но ваш опубликованный код должен работать нормально. если вы не хотите, чтобы команда отображалась, добавьте @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\", и вы в порядке... ;)
Я использовал образец 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". Сценарий будет казнить себя в петле.
простые способы избежать этого:
- не имя скрипта "пинг.летучая мышь."
- вы можете назвать сценарий как " ping.bat", но внутри скрипта используйте " ping.exe google.com "вместо" ping google.com".
просто напишите команду "ping your server IP" без двойной кавычки. сохранить имя файла в качестве имени файла.bat, а затем запустите пакетный файл от имени администратора