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

Wie lasse ich eine Batch-Datei einige Sekunden warten / schlafen?

Ich verwende eine Batch-Datei, um einige der Programme zu starten, die ich im Hintergrund laufen lassen muss. Bis jetzt hatte ich den Pause-Befehl benutzt, um sie auszuführen, nachdem einige der anderen Starts beendet waren. Ich würde es vorziehen, die Befehle Warten oder Schlafen zu verwenden, aber sie scheinen in Windows 7 nicht enthalten zu sein.

Weiß jemand, wie man diese Befehle wieder einfügt, oder eine andere Methode, die zu den gleichen Ergebnissen führt?

Antworten (6)

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

Sie können den Befehl timeout verwenden:

Dieses Dienstprogramm akzeptiert einen Timeout-Parameter, um für die angegebene Zeitspanne (in Sekunden) oder bis zum Drücken einer beliebigen Taste zu warten. Es akzeptiert auch einen Parameter, um den Tastendruck zu ignorieren.

Zum Beispiel, um 10 Sekunden zu warten:

TIMEOUT /T 10

Für weitere Details:

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

Es gibt viele Hilfsprogramme für den Ruhezustand, die Sie herunterladen und in Ihren System32-Ordner ablegen können; eines davon wird mit dem Windows Server 2003 Resource Kit geliefert und heißt sleep.exe.

Sie können auch den Ping-Trick verwenden:

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

dann können Sie es von irgendwo in Ihrer Batch-Datei aus so nennen:

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

Es gibt auch

waitfor SomethingThatIsNeverHappening /t 10

, die zwischen 1 und 99999 Sekunden warten werden.

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

sleep.exe ist im Windows Server 2003 Resource Kit Tools enthalten.

Sie können Folgendes verwenden:

sleep /? sleep Sekunden sleep -m Mikrosekunden

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

Wenn Sie Python installiert haben (und den Installationspfad zu Ihrer Umgebungsvariablen hinzugefügt haben), können Sie Python das Schlafen mit etwas wie:

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

erledigen lassen (Wenn Sie Windows Vista oder höher haben, ist timeout natürlich der richtige Weg).