You are here: > >

How to loop or start a batch file over after it has completed

Batch fileUsing the goto command within a batch allows a user to loop or restart a batch file after it has been completed. Below are some examples of how this command can be used. This page was created with the easiest, but not necessarily recommended solution first, to the most difficult solution but recommended method last.

@echo off
cls
:start
echo This is a loop
goto start

In this first example, the computer will print "This is a loop" over and over until you terminate the file. To cancel this example press: CTRL + C.

@echo off
cls
:start
echo This is a loop
pause
goto start

Next, adding the pause statement before the goto line will prompt the user to press any key before looping the batch file. Adding pause allows the user to run the batch when they're ready.

@echo off
cls
:start
echo This is a loop
set choice=
set /p choice="Do you want to restart? Press 'y' and enter for Yes: "
if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='y' goto start

Finally, in this last example and most recommend method, the user would be prompted if they want to rerun the batch file. Pressing "y" would use the goto command and go back to start and rerun the batch file. Pressing any other key would exit the batch file. This example is for Windows 2000, XP, and later users if you're running earlier Windows 98 or earlier you'd need to use the choice command.

Note: Replacing the "echo This is a loop" line with your batch file allows any of your batch files to loop or rerun.

Additional information

  • Our goto page and set page has the complete syntax of these commands and related links and information.
  • See the loop definition for further information and related links.
  • Batch file help.