batch-file
Добавить задержку в пакетный файл
Поиск…
Вступление
Эта тема научит вас одной из многих полезных вещей, которые нужно знать на языке сценариев, пакетном файле; Добавление задержки / паузы / таймаута в пакетный файл.
Тайм-аут
Тайм - аут
Самый простой способ сделать задержку или паузу в течение определенного времени - это стандартная команда TIMEOUT
. Чтобы сделать тайм-аут, который длится ровно одну минуту, мы вводим:
timeout /t 60
Теперь, что здесь происходит?
Сначала мы используем команду TIMEOUT
с параметром /T
(что просто означает таймаут), тогда мы укажем количество секунд ожидания. В этом случае ... 60
секунд.
Таймаут с параметром / NOBREAK
Если мы возьмем пример из предыдущей и запустим это в файле BATCH: timeout /t 60
то, ожидая этих 60 секунд, вы действительно можете сломать таймаут, нажав любую клавишу на клавиатуре. Чтобы этого избежать, мы просто добавляем параметр /NOBREAK
в конец.
timeout /t 60 /nobreak
Делая это, он будет тайм-аут в течение 60 секунд, и если вы хотите сломать таймаут, вам придется нажать (CTRL-C) на клавиатуре.
Тихий таймаут
Когда он сделает таймаут, он отобразит:
Waiting for X seconds, press a key to continue ...
or
Waiting for X seconds, press CTRL+C to quit ... [This is with the /NOBREAK parameter]
Чтобы скрыть сообщение, используйте аргумент NUL
(для объяснения NUL
: Нажмите здесь )
timeout /t 60 > nul
or
timeout /t 60 /nobreak > nul
Пауза
Чтобы сделать паузу в сценарии, просто используйте команду PAUSE
.
PAUSE
Это отобразит текст. Press any key to continue . . .
, затем добавьте новую строку для ввода пользователем.
Предположим, мы хотим создать программу «Hello World», и после того, как мы нажмем что-то на нашей клавиатуре, мы хотим, чтобы она вышла из программы с помощью команды EXIT
.
echo Hello World
pause
exit
Здесь он использует команду ECHO
чтобы сказать «Hello World». Затем мы используем команду PAUSE
которая отображает. Press any key to continue . . .
и затем мы используем команду EXIT
для завершения текущего скрипта BATCH.
Когда он приостанавливается, он отобразит:
Press any key to continue . . .
Скрыть клавишу «Нажмите любую клавишу, чтобы продолжить ...»
Чтобы скрыть сообщение, мы перенаправляем вывод на специальное устройство с именем nul
. На самом деле это не реальное устройство, но все, что мы отправляем на него, выбрасывается.
pause > nul
пинг
пинг
Одной из наиболее часто используемых команд для задержки на определенное время является ping
.
Основное использование
PING -n 1 -w 1000 1.1.1.1
REM the -n 1 flag means to send 1 ping request.
REM the -w 1000 means when the IP(1.1.1.1) does not respond, go to the next command
REM 1.1.1.1 is an non-existing IP so the -w flag can ping a delay and go to next command
Это выведет на ваш командный файл / консоль следующее:
C:\Foo\Bar\Baz>ping -n -w 1000 1.1.1.1
Pinging 1.1.1.1 (Using 32 bytes of data)
Request timed out
Ping statistics for 1.1.1.1
Packets: Sent = 2,Received = 0, Lost = 1(100% loss)
Скрыть текст, отозванный
Просто добавьте >nul
в конце команды, чтобы перенаправить его на нуль.
ping -n w 1000 1.1.1.1 >nul
Это ничего не выдаст.
Спать
Спать
В старой системе Windows timeout
недоступен. Однако мы можем использовать команду sleep
.
использование
sleep 1
Очень понятно; спать в течение 1 секунды. Однако sleep
является командой с отсрочкой и должен быть заменен таймаутом .
Доступность
Эта команда доступна в старой системе Windows. Также SLEEP.exe
включен в 2003 Resource Kit.
Чтобы использовать sleep.exe
, поместите исполняемый файл в папку %Windir%\System32
. Затем вы можете использовать его как обычную команду.