55

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

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

6 ответов6

123

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

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

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

TIMEOUT /T 10

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

TIMEOUT /?
30

Есть много утилит сна, которые вы можете загрузить и поместить в папку System32, одна из них поставляется с набором ресурсов Windows Server 2003, который называется 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
8
timeout /t <seconds> /nobreak > NUL
6

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

waitfor SomethingThatIsNeverHappening /t 10

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

1

sleep.exe входит в состав средств Windows Server 2003 Resource Kit.

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

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

-1

Если у вас установлен Python (и вы добавили путь установки в переменную окружения), вы можете разрешить Python выполнять спящий режим примерно так:

echo from time import sleep; sleep(3) | python

(Если у вас Windows Vista или выше, то, конечно, timeout .)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .