Как сделать задержку в командном файле
Добавлено: 28 июн 2010, 14:07
Иногда требуется сделать паузу между командами в командном файле.
ПАУЗА КОМАНДОЙ TIMEOUT (для Windows Vista или старше)
TIMEOUT /T <таймаут в секундах>
Преимущества: есть на всех современных компьютерах.
Недостатки: таймаут в секундах, т.е. нельзя сделать задержку менее 1 секунды, например, в 200 или 500 мс.
ПАУЗА КОМАНДНОЙ PING (для Windows XP или раньше)
Запускаем PING с нужным числом запросов (примерно 1 секунда на запрос), например, на 10 секунд:Преимущества: работает на всех компьютерах, т.к. PING есть везде.
Недостатки: время задержки в целых секундах, т.е. нельзя сделать задержку менее 1 секунды, например, в 200 или 500 мс.
ПАУЗА С ИСПОЛЬЗОВАНИЕМ WSH/JScript
Создаём на JScript небольшой скрипт SLEEP.JS, использующий функцию WScript.Sleep: и вызываем его из командного файла, например, задержка 10 секунд: или 500 мс
Преимущества: можно задавать задержки в секундах и миллисекундах; не требуются сторонние программы.
ПАУЗА SLEEP.EXE из Windows XP Resource Kit (или Windows 2003 Resource Kit - смотря какая ОС).
Из краткой справкипонятно, что для задержки в 10 секунд надо запустить а для задержки 500 мс надо написать
Преимущества: можно задавать задержки в секундах и миллисекундах.
Недостатки: SLEEP.EXE не входит в стандартный комплект Windows и может оказаться, что на другом компьютере его нет.
ПАУЗА КОМАНДОЙ TIMEOUT (для Windows Vista или старше)
TIMEOUT /T <таймаут в секундах>
Преимущества: есть на всех современных компьютерах.
Недостатки: таймаут в секундах, т.е. нельзя сделать задержку менее 1 секунды, например, в 200 или 500 мс.
ПАУЗА КОМАНДНОЙ PING (для Windows XP или раньше)
Запускаем PING с нужным числом запросов (примерно 1 секунда на запрос), например, на 10 секунд:
Код: Выделить всё
ping localhost -n 10 >nul
Недостатки: время задержки в целых секундах, т.е. нельзя сделать задержку менее 1 секунды, например, в 200 или 500 мс.
ПАУЗА С ИСПОЛЬЗОВАНИЕМ WSH/JScript
Создаём на JScript небольшой скрипт SLEEP.JS, использующий функцию WScript.Sleep:
Код: Выделить всё
if(WScript.Arguments.Unnamed.length){
var milliseconds=WScript.Arguments.Unnamed(0);
WScript.Sleep(milliseconds);
}
Код: Выделить всё
cscript //nologo sleep.js 10000
Код: Выделить всё
cscript //nologo sleep.js 500
ПАУЗА SLEEP.EXE из Windows XP Resource Kit (или Windows 2003 Resource Kit - смотря какая ОС).
Из краткой справки
Код: Выделить всё
sleep.exe/?
Usage: C:\Program Files\Windows Resource Kits\Tools\sleep.exe time-to-sleep-in-seconds
C:\Program Files\Windows Resource Kits\Tools\sleep.exe [-m] time-to-sleep-in-milliseconds
C:\Program Files\Windows Resource Kits\Tools\sleep.exe [-c] commited-memory ratio (1%-100%)
Код: Выделить всё
sleep.exe 10
Код: Выделить всё
sleep.exe -m 500
Недостатки: SLEEP.EXE не входит в стандартный комплект Windows и может оказаться, что на другом компьютере его нет.