Conditionally perform a command on several files.

      FOR %%parameter IN (set) DO command

   set         : A set of one or more files, separated by any standard delimiter.
                 enclosed in parentheses (file1,file2). Wildcards can be used.

   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:
                 e.g. in a batch file use %%G 
                      (on the command line %G)

The FOR command is mostly used to process files, but you can also process a text string:
FOR %%G IN ("Hello World") DO Echo %%G
This is not really useful being much the same as Echo Hello World

Although wildcards can be used, an alternative method of processing files is to let FOR /F process the output of the command 'DIR /b' This can be useful when you want to use DIR options like sorting.

FOR parameters (%%A – %%Z)

Read the main FOR introduction page for a full description of assigning the replaceable %%parameter.


FOR does not, by itself, set or clear an Errorlevel, leaving that to the command being called.
One exception is using a wildcard, if the wildcard does not match any files, then FOR will return %ERRORLEVEL% = 5

FOR is an internal command.


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).

Echo the days of the week:
FOR %%G IN (Monday Tuesday Wednesday Thursday Friday) DO Echo %%G

Echo the days of the week putting them into a sentence:
FOR %%G IN (Monday Tuesday Wednesday Thursday Friday) DO Echo Every %%G is a working day!

Copy a single file:
FOR %%G IN (MyFile.txt) DO copy %%G d:\backups\

Copy a list of several files:
FOR %%G IN (Myfile.txt SecondFile.txt) DO copy %%G d:\backups\

FOR %%G IN ("C:\demo files\file1.txt" "C:\demo files\File2.txt") DO copy %%G d:\backups\

"Darkness reigns at the foot of the lighthouse" ~ Japanese Proverb

Related commands:

FOR - Loop commands.
FOR /R - Loop through files (recurse subfolders).
- Loop through several folders.
FOR /L - Loop through a range of numbers.
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 bash command (Linux): for - Expand words, and execute commands

Copyright © 1999-2022
Some rights reserved