Delay execution for a few seconds or minutes, for use within a batch file.

      TIMEOUT -T delay [/nobreak] 

   delay  Delay in seconds (between -1 and 100000) to wait before continuing. 
          The value -1 causes the computer to wait indefinitely for a keystroke 
          (like the PAUSE command)

          Ignore user key strokes.

Timeout will pause command execution for a number of seconds, after which it continues without requiring a user keystroke. If the user does press a key at any point, execution will resume immediately.

A timeout of 1 second will wait until the "next second" so in practice may be as short as 1/10th of a second.

A more accurate delay can be produced by the PING command with a loopback address (, there is a delay of 1 second between each consecutive ping, so 3 pings will produce a delay of 2 seconds, 11 pings will produce a delay of 10 seconds and so on.

In tests PING consumes less processor time than Sleep.exe or Timeout.exe, this allows other processes to run in the background. The PING command can only be interrupted with Ctrl-C. Source: Clay Calvert (usenet 2001.)


@Echo off
Echo Start Microsoft Word, wait for 10 seconds and then start Excel.
START "" "C:Program Files (x86)\Microsoft Office\Office16\WINWORD.EXE"
START "" "C:Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE"

Set a delay for 40 seconds:
PING -n 41>nul
Echo Now we are ready

Wait for up to 600 seconds for a file to appear on a remote server:
Set _seconds=0
  :: Wait for 10 seconds
  Set /a "_seconds=_seconds+10">nul
  PING -n 11>nul
  :: If 600 seconds have elapsed exit the loop
  if %_seconds%==600 goto nextstep
  if not exist \\Server64\updates\monday.csv goto waitloop
copy \\Server64\updates\monday.csv D:\imports\

“It is awful work this love and prevents all a mans projects of good or glory” ~ Lord Byron

Related commands

CHOICE /T Timeout - Accept keyboard input to a batch file.
PAUSE - Suspend processing of a batch file and display a message.
SLEEP - Delay execution for a few seconds/minutes (for use within a batch file).
WAITFOR - Wait for or send a signal.
Equivalent PowerShell: Start-Sleep - Suspend shell, script, or runspace activity (sleep).

Copyright © 1999-2023 SS64.com
Some rights reserved