Wie lasse ich eine Batchdatei einige Sekunden warten / schlafen?

Ich verwende eine Batchdatei, um einige der Programme zu starten, die ich im Hintergrund ausführen muss. Bis jetzt hatte ich den Befehl pause verwendet, um ihn auszuführen, nachdem einige der anderen Start-ups fertig waren. Ich würde es vorziehen, die Wait-oder Sleep-Befehle zu verwenden, aber sie scheinen nicht in Windows 7 enthalten zu sein.

Weiß jemand, wie man diese Befehle wieder einsetzt, oder eine andere Methode, die die gleichen Ergebnisse erzielt?

Author: Ƭᴇcʜιᴇ007, 2009-09-29

7 answers

Es gibt viele Schlafprogramme, die Sie herunterladen und in Ihren System32-Ordner legen können, eines wird mit dem Windows Server 2003 Resource Kit namens sleep.exe bereitgestellt.

Sie können auch den Ping-Trick verwenden:

:sleep
ping 127.0.0.1 -n 2 -w 1000 > NUL
ping 127.0.0.1 -n %1 -w 1000 > NUL

Dann können Sie es irgendwo in Ihrer Batch-Datei so aufrufen:

CALL :sleep 1
 30
Author: John T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-09-29 00:31:54

Sie können den Befehl timeout verwenden:

Dieses Dienstprogramm akzeptiert einen Timeout-Parameter, um auf das angegebene zu warten Zeit (in Sekunden), oder bis eine beliebige Taste gedrückt wird. Es akzeptiert auch ein Parameter, um den Tastendruck zu ignorieren.

Zum Beispiel, um 10 Sekunden zu warten:

TIMEOUT /T 10

Für weitere details:

TIMEOUT /?
 126
Author: Alex S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-07-29 03:31:45
timeout /t <seconds> /nobreak > NUL
 8
Author: Prichard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-09-01 12:53:17

Es gibt auch

waitfor SomethingThatIsNeverHappening /t 10

, die zwischen 1 und 99999 Sekunden warten.

 6
Author: Fowl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-09-01 13:06:17

Sleep.exe ist enthalten in Windows Server 2003 Resource Kit Tools - .

Sie können verwenden:

Sleep /?
schlaf Sekunden
schlaf-m Mikrosekunden

 1
Author: harrymc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-09-29 06:11:30

Hier ist ein Batch - Dateimakro, das Sie verwenden können:

@echo off & cls & setlocal disabledelayedexpansion
set LF=^


set ^"\n=^^^%LF%%LF%^%LF%%LF%^^"
set _delay=for /l %%a in (1 1 2) do if %%a==2 (%\n%
  for /f "tokens=1 delims=, " %%e in ("!argv!") do (%\n%
    set "_sec=%%~e" %\n%
    %__APPDIR__%ping.exe localhost -n !_sec! -w 1000 ^>nul 2^>^&1 %\n%
  ) %\n%
) else setlocal enabledelayedexpansion ^& set argv=,

Sie können dies in Ihrer Batch-Datei wie folgt aufrufen:

%_delay% seconds

Wie %_delay% 10 wird für 10 Sekunden warten. Um den Makronamen zu ändern, ersetzen Sie "_delay" durch etwas anderes in der vierten Zeile.

 0
Author: Wasif Hasan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-07-29 09:54:25

Wenn Sie Python installiert haben (und den Installationspfad zu Ihrer Umgebungsvariablen hinzugefügt haben), können Sie Python Folgendes ausführen lassen:

echo from time import sleep; sleep(3) | python

(Wenn Sie Windows Vista oder höher haben, ist timeout natürlich der richtige Weg.)

 -1
Author: Protector one,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-01-14 14:51:29