Forfiles


Applies To: Windows Vista,Windows Server 2008

Selects and executes a command on a file or set of files. This command is useful for batch processing.

For examples of how to use this command, see Examples.

Syntax


Copy Code

forfiles [/p <Path>] [/m <SearchMask>] [/s] [/c "<Command>"] [/d [{+|-}][{<Date>|<Days>}]]

Parameters

Parameter

Description

/p <Path>

Specifies the path from which to start the search. By default, searching starts in the current working directory.

/m <SearchMask>

Searches files according to the specified search mask. The default search mask is *.*.

/s

Instructs the forfiles command to search into subdirectories recursively.

/c "<Command>"

Runs the specified command on each file. Command strings should be enclosed in quotation marks. The default command is "cmd /c echo @file".

/d [{+|-}][{<Date>|<Days>}]

Selects files with a last modified date within the specified time frame.

  • Selects files with a last modified date later than or equal to (+) or earlier than or equal to (-) the specified date, where Date is in the format MM/DD/YYYY.

  • Selects files with a last modified date later than or equal to (+) the current date plus the number of days specified, or earlier than or equal to (-) the current date minus the number of days specified.

  • Valid values for Days include any number in the range 0–32,768. If no sign is specified, + is used by default.

/?

Displays help at the command prompt.

Remarks

Variable

Description

@FILE

File name.

@FNAME

File name without extension.

@EXT

File name extension.

@PATH

Full path of the file.

@RELPATH

Relative path of the file.

@ISDIR

Evaluates to TRUE if a file type is a directory. Otherwise, this variable evaluates to FALSE.

@FSIZE

File size, in bytes.

@FDATE

Last modified date stamp on the file.

@FTIME

Last modified time stamp on the file.

Examples

To list all of the batch files on drive C, type:


Copy Code

forfiles /p c:\ /s /m *.bat /c "cmd /c echo @file is a batch file"

To list all of the directories on drive C, type:


Copy Code

forfiles /p c:\ /s /m *.* /c "cmd /c if @isdir==true echo @file is a directory"

To list all of the files in the current directory that are at least one year old, type:


Copy Code

forfiles /s /m *.* /d -365 /c "cmd /c echo @file is at least one year old."

To display the text "File is outdated" for each of the files in the current directory that are older than January 1, 2007, type:


Copy Code

forfiles /s /m *.* /d -01/01/2007 /c "cmd /c echo @file is outdated."

To list the file name extensions of all the files in the current directory in column format, and add a tab before the extension, type:


Copy Code

forfiles /s /m *.* /c "cmd /c echo The extension of @file is 0x09@ext"

Additional references

Command-Line Syntax Key