2009-09-29 00:21:29 +0000 2009-09-29 00:21:29 +0000
58
58

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

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

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

Respostas (6)

126
126
126
2010-02-18 22:21:34 +0000

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

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

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

TIMEOUT /T 10

Подробнее:

TIMEOUT /?
30
30
30
2009-09-29 00:26:17 +0000

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

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

: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
8
8
2010-09-01 12:53:17 +0000
timeout /t <seconds> /nobreak > NUL
6
6
6
2010-09-01 13:06:17 +0000

Есть также

waitfor SomethingThatIsNeverHappening /t 10

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

1
1
1
2009-09-29 06:11:30 +0000

sleep.exe включен в Windows Server 2003 Resource Kit Tools .

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

сон /? секунды сна микросекунды сна.

-1
-1
-1
2011-01-14 14:43:50 +0000

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

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

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

Questões relacionadas

3
19
10
28
9