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

Jak sprawić, aby plik wsadowy czekał / spał przez kilka sekund?

Używam pliku wsadowego do uruchomienia kilku programów, które potrzebuję uruchomić w tle. Do tej pory, używałem komendy pauzy do jej wykonania po zakończeniu niektórych innych uruchomień. Wolałbym używać komend oczekiwania lub uśpienia, ale nie wydaje mi się, aby były one zawarte w systemie Windows 7.

Czy ktoś wie, jak umieścić te komendy z powrotem, lub inną metodą, która daje te same wyniki?

Odpowiedzi (6)

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

Możesz użyć komendy timeout:

To narzędzie akceptuje parametr timeout do oczekiwania na określony okres czasu (w sekundach) lub do momentu naciśnięcia dowolnego klawisza. Akceptuje również parametr ignorowania naciśnięcia klawisza.

Na przykład, aby odczekać 10 sekund:

TIMEOUT /T 10

Więcej szczegółów:

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

Istnieje wiele programów uśpienia, które można pobrać i wrzucić do folderu System32, jeden z nich jest dostarczany z Windows Server 2003 Resource Kit o nazwie sleep.exe.

Można również użyć triku pingowego:

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

następnie skądś w pliku wsadowym, można go nazwać tak:

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

Jest też

waitfor SomethingThatIsNeverHappening /t 10

, które będą czekać od 1 do 99999 sekund.

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

sleep.exe znajduje się w Windows Server 2003 Resource Kit Tools .

Możesz użyć:

sleep /? sleep seconds sleep -m mikrosekund

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

Jeśli masz zainstalowany Python (i dodałeś ścieżkę instalacji do swojej zmiennej środowiskowej), możesz pozwolić Pythonowi spać z czymś takim jak:

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

(Jeśli masz Windows Vista lub wyższy, timeout oczywiście jest drogą, którą należy podążać).