it-swarm-ru.tech

Как заставить пакетный файл ждать/спать в течение нескольких секунд?

Я использую командный файл, чтобы запустить несколько программ, которые мне нужны в фоновом режиме. До сих пор я использовал команду pause для ее выполнения после завершения некоторых других запусков. Я бы предпочел использовать команды wait или sleep, но они, похоже, не включены в Windows 7.

Кто-нибудь знает, как вернуть эти команды, или другой метод, который достигает тех же результатов?

56
Cegorach

Есть много утилит сна, которые вы можете загрузить и поместить в папку System32, одна из них поставляется с Windows Server 2003 Resource Kit называется sleep.exe.

Вы также можете использовать трюк пинг:

:sleep
ping 127.0.0.1 -n 2 -w 1000 > NUL
ping 127.0.0.1 -n %1 -w 1000 > NUL

затем откуда-то в вашем командном файле вы можете назвать это так:

CALL :sleep 1
30
John T

Вы можете использовать команду timeout:

Эта утилита принимает параметр времени ожидания для ожидания в течение указанного периода времени (в секундах) или до нажатия любой клавиши. Он также принимает параметр, чтобы игнорировать нажатие клавиши.

Например, подождать 10 секунд:

TIMEOUT /T 10

Больше подробностей:

TIMEOUT /?
126
Alex S
timeout /t <seconds> /nobreak > NUL
8
Prichard

Существует также

waitfor SomethingThatIsNeverHappening /t 10

Который будет ждать от 1 до 99999 секунд.

6
Fowl

sleep.exe входит в средства набора ресурсов для Windows Server 2003 .

Вы можете использовать:

спать /?
секунд сна
сон -м микросекунды

1
harrymc