Conditionally perform a command on several folders
Syntax
FOR /D [/r] %%parameter IN (folder_set) DO command
Key
folder_set : A set of one or more folders. Wildcards must be used.
command : The command to carry out, including any
command-line parameters.
%%parameter : A replaceable parameter:
in a batch file use %%G (on the command line %G)
/r : Recurse into subfolders
Unlike some other variants of the FOR command you must include a wildcard (either * or ?) in the 'folder_set' to get consistent results returned. In many cases you can work around this by adding a single character wildcard e.g. if you are looping through multiple folders to find the exact folder user456 you could instead specify us?r456
Example
List every subfolder, below the current folder that has a name starting with User:
C:\>FOR /D /r %%G in ("User*") DO Echo ***Found folder: %%G
"I knew of one little DO loop that ran for 48 hours, cost $14,000 and did
nothing" -
Balfour and Marwick
Related Commands:
FOR - Loop commands
FOR - Loop through a set of files in one folder
FOR /R - Loop through files (recurse subfolders)
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
Powershell: ForEach-Object - Loop for each object in the pipeline
Equivalent bash command (Linux):
for - Expand words, and execute commands