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?
- 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)