Откройте командную строку , запустите if /?
и прочитайте на первой странице вывода справку, как оценить код завершения команды или исполняемого файла с рекомендуемым синтаксисом IF ERRORLEVEL 1
для IF GREATER ИЛИ РАВНО 1, ЧЕМ или IF NOT ERRORLEVEL 1
для ЕСЛИ МЕНЬШЕ, ЧЕМ 1 , что обычно идентично ЕСЛИ РАВНО 0 0 , так как большинство исполняемых файлов никогда не завершаются с отрицательным целочисленным значением.
%SystemRoot%\System32\ping.exe google.ro
if not errorlevel 1 exit /B
echo THERE IS NO INTERNET, RESTART IS IMMINENT.
%SystemRoot%\System32\timeout.exe /T 15
%SystemRoot%\System32\ping.exe google.ro
if errorlevel 1 %SystemRoot%\System32\shutdown.exe -r -t 00
Одна строка с несколькими командами с использованием Windows командный файл описывает другое решение с использованием операторов условного выполнения &&
и ||
.
%SystemRoot%\System32\ping.exe google.ro && exit /B
echo THERE IS NO INTERNET, RESTART IS IMMINENT.
%SystemRoot%\System32\timeout.exe /T 15
%SystemRoot%\System32\ping.exe google.ro || %SystemRoot%\System32\shutdown.exe -r -t 00
Для чтобы понять используемые команды и то, как они работают, откройте окно командной строки , выполните там следующие команды и полностью прочитайте все страницы справки, отображаемые для каждой команды.
echo /?
exit /?
if /?
ping /?
или ping -?
shutdown -?
или shutdown /?
timeout /?
PING и SHUTDOWN использование Unix синтаксис опций с -
в начале опции, в то время как другие внутренние команды Windows процессор команд cmd.exe
и внешняя Windows команда TIMEOUT use Windows синтаксис опций с /
в начале опции.
См. Также: SS64.com - индекс AZ Windows CMD-команд