870 Stimmen

Wie man in einer Batch-Datei/cmd fünf Sekunden lang schlafen kann

Das Snipping-Tool von Windows kann den Bildschirm erfassen, aber manchmal möchte ich den Bildschirm nach fünf Sekunden erfassen, z. B. um ein Bild aufzunehmen, das von der Webcam angezeigt wird (führen Sie das Skript aus und lächeln Sie in die Kamera, zum Beispiel).

Wie kann ich in einer Batch-Datei 5 Sekunden lang schlafen?

27 Stimmen

Kurze Antwort für alle, die hier landen: Seit Windows Vista gibt es eine native Lösung: TIMEOUT . Verweise: SS64 , Rob van der Woude .

3 Stimmen

Es gibt Timeout Befehl, der sekundenlang wartet. Falls ein Millisekunden-Schlaf benötigt wird, kann der Powershell-Befehl Start-Schlaf verwendet werden können. Um 50ms in cmd zu schlafen: powershell Start-Sleep -m 50

0 Stimmen

@Pavel: Man kann auch einen Ping an einen nicht existierenden Host missbrauchen, um für Millisekunden zu schlafen.

3voto

GreenMatt Punkte 17578

Wenn Sie eine entsprechende Version von Windows haben und die Windows Server 2003 Ressourcenkit Werkzeuge enthält es einen Sleep-Befehl für Batch-Programme. Mehr unter: http://malektips.com/xp_dos_0002.html

3voto

user3584216 Punkte 31
PING -n 60 127.0.0.1>nul

für den Fall, dass Ihr LAN-Adapter nicht verfügbar ist.

1voto

Andrés Falcón Punkte 263

Unter Windows xp sp3 können Sie den Befehl sleep verwenden

1voto

thebunnyrules Punkte 1340

Erstellen Sie eine cmd-Datei namens sleep.cmd:

REM Usage: SLEEP Time_in_MiliSECONDS
@ECHO off
ping 1.0.0.0 -n 1 -w %1 > nul

Kopieren Sie sleep.cmd nach c: \windows\system32

Verwendung:

sleep 500

Schläft für 0,5 Sekunden. Argumente in ms. Einmal nach System32 kopiert, kann es überall verwendet werden.

EDIT: Sie sollten auch beachten, dass der Ping-Trick nicht mehr funktioniert, wenn der Rechner nicht mit einem Netzwerk verbunden ist (z. B. ein tragbarer Rechner, den Sie in der U-Bahn benutzen).

0voto

Doctor DOS Punkte 263

Nun, das funktioniert, wenn Sie die Wahl haben oder ping.

@echo off
echo.
if "%1"=="" goto askq
if "%1"=="/?" goto help
if /i "%1"=="/h" goto help
if %1 GTR 0 if %1 LEQ 9999 if /i "%2"=="/q" set ans1=%1& goto quiet
if %1 GTR 0 if %1 LEQ 9999 set ans1=%1& goto breakout
if %1 LEQ 0 echo %1 is not a valid number & goto help
if not "%1"=="" echo.&echo "%1" is a bad parameter & goto help
goto end

:help
echo SLEEP runs interactively (by itself) or with parameters (sleep # /q )
echo where # is in seconds, ranges from 1 - 9999
echo Use optional parameter /q to suppress standard output 
echo or type /h or /? for this help file
echo.
goto end

:askq
set /p ans1=How many seconds to sleep? ^<1-9999^> 
echo.
if "%ans1%"=="" goto askq
if %ans1% GTR 0 if %ans1% LEQ 9999 goto breakout
goto askq

:quiet
choice /n /t %ans1% /d n > nul
if errorlevel 1 ping 1.1.1.1 -n 1 -w %ans1%000 > nul
goto end

:breakout
choice /n /t %ans1% /d n > nul
if errorlevel 1 ping 1.1.1.1 -n 1 -w %ans1%000 > nul
echo Slept %ans1% second^(s^)
echo.

:end

nennen Sie es einfach sleep.cmd oder sleep.bat und führen Sie es aus

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X