Windows-Android-Linux-Visual Basic-PC - nic (NB) блог

 

Дата публикации: 22 Сентября 2019 г.
Автор: nic binary

Создание задержки в сценарии Windows встроенными средствами

Приветствую всех читателей.В этой статье я расскажу как сделать задержку в командном сценарии Windows с заданным значением интервала.Многие знают консольную команду pause.Она приостанавливает выполнение командного сценария и ожидает нажатие на любую клавишу пользователем,например для чтения выходного потока консольного приложения.Если эта команда последняя в сценарии,то консольное окно закроется.Этого можно избежать,если запусить командный процессор с параметром /K. А для того чтобы можно было задать время задержки (например для автоматизации и отмены перехода в режим сна suspend) без использования сторонних утилит предлагаю использовать возможности команды ping.По умолчанию,ping,посылает последовательно 4 icmp пакета с интервалом 3 секунды.Эти параметры можно изменить ключами -n,и -w.Где -w таймаут ожидания в миллисекундах -n количество icmp запросов.Таким образом задержка,например в 10 минут,задаётся в сценарии командой ping -n 1 -w 600000 192.168.0.0. Указанный в примере адрес принадлежит области локальной подсети.Важно чтобы этот адрес не был присвоен какому-либо узлу в сети.Или этот узел не должен отвечать на icmp запросы.В примере отправляется единственный запрос с ожиданием ответа в течении 10 минут.(600000/60/1000)-получим кол-во в минутах.Где-то на "хабре",была похожая методика задержки,но отличие было в том,что постоянно "пинговался" узел localhost с интервалом по умолчанию 1 секунда.Таким образом указав кол-во запросов можно было указать время задержки в секундах.Какой способ лучше решать Вам.
P.S Максимальное значение ключа -w я не проверял.Думаю это 2^32-1 для x86 систем и 2^64-1 для x64.



Комментарии к странице

Ваш комментарий




Наверх