FOR /D

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



Back to the Top

Simon Sheppard
SS64.com