Conditionally perform a command for a range of numbers.

      FOR /L %%parameter IN (start,step,end) DO command 

   start       : The first number  
   step        : The amount by which to increment the sequence 
   end         : The last number 

   command     : The command to carry out, including any parameters.
                 This can be a single command, or if you enclose it
                 in (brackets), several commands, one per line.

   %%parameter : A replaceable parameter:
                 in a batch file use %%G (on the command line %G)

FOR parameters (%%A – %%Z)

Read the main FOR introduction page for a full description of assigning the replaceable %%parameter.
FOR parameters are used in all variations of the FOR command.

Example sequences:
(1,1,5) will generate the sequence 1 2 3 4 5
(0,5,20) will generate the sequence 0  5  10  15  20
(0,5,19) will generate the sequence 0  5  10  15
(-20,5,0) will generate the sequence -20  -15  -10  -5  0
(20,-5,10) will generate the sequence 20  15  10
(5,1,5) will generate the sequence 5
(5,1,3) will not loop at all.
(0) will loop indefinitely.

The numbers must all be within the range of 32 bit signed integer numbers (-2,147,483,648 through 2,147,483,647)

In addition to integer numbers, hex and octal numbers can also be compared within certain limits.

If the start,step,end are chosen such that end will never be reached, the loop will not run at all.
If the start,step,end are left null or (0) then the command will loop indefinitely, Ctrl-C will cancel the whole script.

If EXIT /b used with FOR /L, the execution of the commands in the loop is stopped, but the loop itself continues until the end count is reached. This will cause slow performance if the loop is (pointlessly) counting up to a large number.

If you are using the FOR command at the command line rather than in a batch program, use just one percent sign: %G instead of %%G.

FOR does not, by itself, set or clear the Errorlevel.
FOR is an internal command.


Count from 1 up to 5:

FOR /L %%G IN (1,1,5) DO echo %%G

Non-numeric lists can use a standard FOR command:

FOR %%G IN (Sun Mon Tue Wed Thur Fri Sat) DO echo %%G

Create 1000 numbered copies of a file:

FOR /l %%G in (1,1,1000) DO copy SourceFile.txt NewFile%%G.txt

"A great deal of what makes life congenial is a sequence of little white lies” ~ Philip Terzian

Related commands

FOR - Loop commands.
FOR - Loop through a set of files in one folder.
FOR /R - Loop through files (recurse subfolders) .
- Loop through several folders.
FOR /F - Loop through items in a text file.
FOR /F - Loop through the output of a command.
FORFILES - Batch process multiple files.
GOTO - Direct a batch program to jump to a labelled line.
IF - Conditionally perform a command.
Equivalent PowerShell: ForEach-Object - Loop for each object in the pipeline / While.
Equivalent bash command (Linux): seq - Print a sequence of numbers.

Copyright © 1999-2024
Some rights reserved