Ein Schläfchen für die XP-Batchdatei

Ich möchte in eine Batch-Datei eine Pause von zehn Sekunden einbauen, so wie es in Shell-Skripten unter Unix der Befehl „sleep“ tut. In Ausgabe 12/01 schreiben Sie, dass das unter Windows 9x mit dem Befehl „choice /tn,10 >nul“ geht. Windows XP bringt aber „choice“ nicht mehr mit. Wie erzwinge ich bei XP eine Pause?

vorlesen Druckansicht
Lesezeit: 2 Min.
Von
  • Björn Hansen

Ich möchte in eine Batch-Datei eine Pause von zehn Sekunden einbauen, so wie es in Shell-Skripten unter Unix der Befehl „sleep“ tut. In Ausgabe 12/01 schreiben Sie, dass das unter Windows 9x mit dem Befehl „choice /tn,10 >nul“ geht. Windows XP bringt aber „choice“ nicht mehr mit. Wie erzwinge ich bei XP eine Pause?

Zum Windows XP Professional Resource Kit gehört das Programm „sleep.exe“, das wie der entsprechende Unix-Befehl funktioniert. Microsoft verkauft das Resource Kit zusammen mit der gedruckten Dokumentation für etwa 60 US-Dollar.

Falls Ihnen das zu teuer ist, können Sie in der Batch-Datei ein VBScript für den Windows Script Host erzeugen und es dann aufrufen. Da die sleep-Methode von VBScript ein Argument in Millisekunden erwartet, müssen Sie die gewünschte Wartezeit in Sekunden mit 1000 multiplizieren. Folgender Batch-Schnipsel legt im Temp-Verzeichnis eine VBScript-Datei an, die nur den sleep-Befehl enthält, führt dieses Skript aus und löscht anschließend die Datei.

echo wscript.sleep 1000*10 >%temp%\sleep.vbs
cscript /nologo %temp%\sleep.vbs
erase %temp%\sleep.vbs

Wenn Sie den Script Host nicht benutzen wollen, bleibt schließlich noch die Empfehlung von Microsoft, den ping-Befehl zu verwenden. Er pausiert zwischen zwei gesendeten Paketen ziemlich genau eine Sekunde. Daher muss man ein Ping-Paket mehr an sich selbst schicken, als die Pause Sekunden haben soll. Der Aufruf

ping -n 11 127.0.0.1 >nul

unterbricht die Batch-Verarbeitung für ungefähr zehn Sekunden. (je) (ha)