ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel
  • »
  • Technology»
  • Computers & Software»
  • Computer How-Tos & Tutorials

How to Make A Windows Batch File Loop, Sleep or Delay For Specific Interval of Time

Updated on September 22, 2013

In this hub I'm going to explain how to create a loop inside a batch program and how to make a batch program sleep or delay itself for a specific interval of time.

loop is exited when x becomes 0
loop is exited when x becomes 0 | Source
Source

How to create a loop inside batch file

To create a loop inside the batch file all we got to do is use a label and use a goto statement.

syntax:

:labelname

rem The code to be executed

goto labelname


don't forget to use a ":" before the label name, and the code to be repeated or looped should be placed between the label and the goto label part.

To exit the loop we can set conditions using an if statement


Here is an example batch program to run a loop ten times

Batch file to Run a Loop 10 times

@echo off
title Atz.hubpages.com
set /a x=0

:loopname

echo Loop number -^>%x%

set /a x=%x%+1

if %x% NEQ 10 goto loopname

pause
exit

Parameter List

Parameters
Discriptions
 
/T
timeout Specifies the number of seconds to wait. Valid range is -1 to 99999 seconds.
 
/NOBREAK
Ignore key presses and wait specified time
 
/?
Displays this help message.
 
NOTE: A timeout value of -1 means to wait indefinitely for a key press

How to Make a Batch program Delay or Sleep

To make our batch program delay or wait we make use of the function Timeout


Description:
This utility accepts a timeout parameter to wait for the specified
time period (in seconds) or until any key is pressed. It also
accepts a parameter to ignore the key press.

Examples:

TIMEOUT /?
TIMEOUT /T 10
TIMEOUT /T 300 /NOBREAK
TIMEOUT /T -1


@echo off
title Atz.hubpages.com
rem Batch file for delaying

timeout /t 5
echo Time out with parameter /t (time out)

timeout /t 3 /nobreak
echo Time out with parameter /t (time out) and /nobreak

timeout /t -1
echo Timeout indefinitely till a key press

pause
exit
using parameters /T, /NOBREAK ans /t -1
using parameters /T, /NOBREAK ans /t -1 | Source

Was this hub easy to follow ?

See results

How to perform delay using a loop ?

In older versions of Windows, the command prompt wont support the Timeout function. So to if we want to delay the cmd or our commands we can use a loop to achieve that or the ping option

if you are using a ping option all you have to do is add

ping 172.0.1.2 -n 1 -w 10000 > nul

  • The -w 10000 part specifies the desired timeout in milliseconds.
  • The -n 1 part tells ping that it should only tries once (normally it'd try 4 times).
  • The > nul part is appended so the ping command doesn't output anything to screen.

if you want to use a loop just use

set count=300

:loop

set /a count=%count%-1

if %count% NEQ 0 goto loop

  • use this code snippet were you want to delay the bat file
  • change the value of the count in the first line depednig on the time delay required
  • if condition checks wether the value inside the variabe count is 0 or not, if the value is not zero it will again go to loop
  • when the count becomes 0 it will execute the rest of the program

© 2013 Athul M R

Comments

    0 of 8192 characters used
    Post Comment

    • profile image

      Alkun Hacker From Indonesia 2 years ago

      Simple And Work

      This Delay 5 Mnt

      @echo off

      CHKDSK

      And Put your syntax here

      exit

      :D

    • profile image

      a salted peanut. 3 years ago

      I would like to make an infinite loop to open a new instance of cmd and run a selected code, but it must open a number of cmds. So in other words it must call another bat file in a new cmd

    • profile image

      dibya 3 years ago

      thanks

    • profile image

      sri 3 years ago

      thanks a lot :) :)

    • Atz profile image
      Author

      Athul M R 3 years ago from Calicut, Kerala, INDIA

      you are most welcome :)

    • amzma profile image

      amzma 3 years ago

      thanks for your tutor :D

    • Atz profile image
      Author

      Athul M R 3 years ago from Calicut, Kerala, INDIA

      Bhuvanesh Thanks for you positive feedback =)

    • profile image

      bhuvanesh 3 years ago

      rly useful....gud wrk bro..........:)