Sleep Command in Windows Batch Dateien

In Windows Batch Dateien ist es machmal erforderlich, die Ausführung von Befehlen zu verzögern. In vielen Programmier- und Skriptsprachen erreicht man dies mit sleep oder wait Commands. Leider ist die Unterstützung dieser sleep und wait Befehle abhängig von der verwendeten Windows Version sehr unterschiedlich. An dieser Stelle werde ich kurz skizzieren, wie man das gewünschte Verhalten abhängig vom Betriebssystem erreichen kann.

Mit Bordmitteln

Die hier beschrieben Methoden kommen mit den Bordmitteln der Betriebssysteme aus.

Alle Windows Versionen

Unabhängig von der verwendeten Windows Version können Wartezeiten mit sekündiger Genauigkeit mit dem ping Command realisiert werden. Der Parameter -n gibt die Anzahl der auszuführenden Pings an. Der Abstand zwischen den Pings beträgt standardmäßig eine Sekunde. Über > NUL wird die Ausgabe des Befehls ins Nirvana umgeleitet und somit nicht in der Kommandozeile ausgegeben.

ping -n <N> 127.0.0.1 > NUL

<N> ist mit der gewünschten Dauer in Sekunden zu ersetzt.

Windows 95 / Windows 98 / Windows ME / Windows 2000

Hier bietet sich zusätzlich das choice Command als Lösung an. Die eigentliche Aufgabe von choice ist es dem Benutzer zu ermöglichen durch Entscheidungen (choice) den Skriptablauf zu beeinflussen. Durch Angabe einer maximalen Wartezeit über den Parameter /t kann dieser Befehl aber zweckentfremden werden.

choice /c:123 /t:<N> > NUL

<N> ist mit der gewünschten Dauer in Sekunden zu ersetzt.

Windows XP / Windows 2003 Server

Choice wurde durch das Set Command ersetzt und gehört nicht zum Lieferumfang von Windows XP und Abkömmlingen. Beschränkt man sich auf Bordmittel, bleibt hier nur die ping-basierte Variante.

Windows Vista/ Windows 7

Mit Windows Vista führte Microsoft das timeout Command ein. Das timeout Command veranlasst den Command Processor die Ausführung eines Skripts für die über den Parameter /t angegebene Zahl an Sekunden zu pausieren. Die Pause kann durch Tastendruck beendet werden. Über den Parameter /nobreak kann Tastendrücken ignoriert werden.

timeout /T <N>  > nul

<N> ist mit der gewünschten Dauer in Sekunden zu ersetzt.

Alternativ steht ab Windows Vista auch wieder choice zur Verfügung, dessen Verwendung bereits beschrieben wurde.

Mit zusätzlicher Software

Das sleep Command ist Teil der Resource Kits der jeweiligen Betriebssysteme. Mittels sleep können Wartezeiten mit sekündiger Genauigkeit realisiert werden. Das sleep Command ist wie folgt zu verwenden.

sleep <N>

<N> ist mit der gewünschten Dauer in Sekunden zu ersetzt.

Windows 98 Resource Kit – sleep .exe
ftp://ftp.microsoft.com/Services/TechNet/samples/PS/Win98/Reskit/SCRPTING/SLEEP.EXE

Windows NT 3.1 Resource Kit – sleep .exe
ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt31/i386/reskit.exe

Windows NT 3.5 Resource Kit – sleep .exe
ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt35/i386/i386.exe

Windows Server 2003 Resource Kit Tools – sleep .exe
http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en

Alternativ gibt es weitere Programme von anderen Anbietern.


Veröffentlicht von

www.mabraham.de

Kommt noch.