------------------------- MS-DOS v6.22 Help: For ---------------------------
<Notes> <Examples>                                               <Index>


Runs a specified command for each file in a set of files. You can use this
command in batch programs or at the command prompt.


To use FOR in a batch program, use the following syntax:

    FOR %%variable IN (set) DO command [command-parameters]

To use FOR from the command prompt, use the following syntax:

    FOR %variable IN (set) DO command [command-parameters]


%%variable or %variable
    Represents a replaceable variable. The FOR command replaces %%variable
    (or %variable) with each text string in the specified set until the
    command (specified in the command parameter) processes all the files.
    Use %%variable to carry out the FOR command within a batch program. Use
    %variable to carry out FOR from the command prompt.

    Specifies one or more files or text strings that you want to process
    with the specified command. The parentheses are required.

    Specifies the command that you want to carry out on each file included
    in the specified set.

    Specifies any parameters or switches that you want to use with the
    specified command (if the specified command uses any parameters or


<Syntax> <Examples>


Using the IN and DO keywords

IN and DO are not parameters, but they are required in the FOR command. If
you omit either of these keywords, MS-DOS displays an error message.

Using the replaceable variable

To avoid confusion with the batch parameters %0 through %9, you can use any
character for variable except the numerals 0 through 9. For simple batch
programs, a single character such as %%F may be all that is necessary.

You can use multiple values for variable in complex batch programs to
distinguish different replaceable variables. However, you cannot nest (add)
multiple FOR commands on the same command line.

Specifying a group of files

The set parameter can represent a single group of files or several groups of
files. You can use wildcards (* and ?) to specify a file set. The following
are valid file sets:


    (*.doc *.txt *.me)

    (jan*.doc jan*.rpt feb*.doc feb*.rpt)

    (ar??1991.* ap??1991.*)

When you use the FOR command, the first value in set replaces %%variable (or
%variable) and MS-DOS carries out the specified command in order to process
this value; this continues until MS-DOS has processed all the files (or
groups of files) that correspond to the value (or values) in set.


<Syntax> <Notes>


Suppose you want to use the TYPE command to display the contents of all the
files in the current directory that have the extension .DOC or .TXT. To do
this and to use the replaceable variable %F, type the following command at
the command prompt:

    for %f in (*.doc *.txt) do type %f

In this example, each file that has the .DOC or .TXT extension in the
current directory is substituted for the %F variable until the contents of
every file are displayed. To use this command in a batch file, you would
replace every occurrence of %F with %%F. Otherwise, MS-DOS ignores the
variable and displays an error message.

MS-DOS supports command switches, pipes, and redirection that you may want
to use with the specified command. For example, to redirect the output of
the previous example to PRN (the default printer port), you would type the
following command:

    for %f in (*.doc *.txt) do type %f > prn:


<Top of page>
Last update: December 07, 2002 14:45 by
Content © 1997 Microsoft Corporation
All else © 2000-2005