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.

49voto

Alex Punkte 509

Sie können es mit timeout :

Dies wird sichtbar sein: timeout 5

Dies wird nicht sichtbar sein timeout 5 >nul

40voto

joe li Punkte 371

Können wir das nicht tun? waitfor /T 180 ?

waitfor /T 180 pause führt zu "ERROR: Zeitüberschreitung beim Warten auf 'pause'".

waitfor /T 180 pause >nul wird diesen "Fehler" unter den Teppich kehren

El waitfor Befehl sollte in Windows-Betriebssystemen ab Win95 vorhanden sein

In der Vergangenheit habe ich eine ausführbare Datei namens sleep das in der Befehlszeile funktioniert, nachdem Sie es in Ihren Pfad aufgenommen haben.

Zum Beispiel: sleep shutdown -r -f /m \\yourmachine obwohl shutdown jetzt die Option -t eingebaut hat

36voto

Jonathan Punkte 469

Timeout /t 1 >nul

Ist wie Pause in 1 Sekunde, können Sie die Begrenzung auf fast 100.000 (99.999) Sekunden nehmen. Wenn Sie mit dem Internet verbunden sind, wäre die beste Lösung:

ping 1.1.1.1. -n 1 -w 1000 >nul

Bei einem Ping zählt man in Millisekunden, eine Sekunde wäre also 1000 Millisekunden. Aber der Ping-Befehl ist ein wenig heikel, er funktioniert auf Offline-Rechnern nicht auf die gleiche Weise. Das Problem ist, dass der Rechner verwirrt ist, weil er offline ist, und er würde gerne einen Ping an eine website/server/host/ip aber das kann sie nicht. Ich würde also eine Auszeit empfehlen. Viel Glück!

35voto

Amir Punkte 1363

SLEEP 5 war in einigen der Windows Resource Kits enthalten.

TIMEOUT 5 war in einigen der Windows Resource Kits enthalten, ist aber jetzt ein Standardbefehl in Windows 7 und 8 (bei Vista bin ich mir nicht sicher).

PING 1.1.1.1 -n 1 -w 5000 >NUL Für jede MS-DOS- oder Windows-Version mit einem TCP/IP-Client kann PING verwendet werden, um die Ausführung für eine bestimmte Anzahl von Sekunden zu verzögern.

NETSH badcommand (nur Windows XP/Server 2003) oder CHOICE

Dieser Link wird Ihnen weiterhelfen .

27voto

amegyoushi Punkte 437

Es gibt sie!

SLEEP <seconds>

Wenn Sie es im Millisekundenmodus wünschen:

SLEEP -m <time in milliseconds>

Dies ist hilfreicher als TIMEOUT denn TIMEOUT mit einem Klick auf eine Taste abgebrochen werden kann oder CTRL + C (für TIMEOUT /t <secs> /nobreak ). SLEEP kann nicht durch irgendetwas abgebrochen werden (außer durch die Schließen-Taste :p)

Die andere ist PING . Aber PING benötigt eine Internetverbindung, da Sie die Verbindung einer Website aufzeichnen werden.

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