NT Syntax

FORFILES.exe (Resource Kit)

Batch process multiple files

syntax
      FORFILES [-pPath] [-s] [-dDate] [-mMask] [-cCommand] 

key
   -pPath   : Path to search                   default=current folder

   -s       : Recurse into sub-folders

   -dDate   : This can be
              +DDMMYY to select files newer than a given date
                      (filedate >=DDMMYY) or
              -DDMMYY to select files older than a given date
                      (filedate <=DDMMYY) or
              +DD to select files newer than DD days ago or
              -DD to select files older than DD days ago
-mMask : Search mask (wildcards allowed) default=*.*
-cCommand : Command to execute on each file. default="CMD /C Echo @FILE" -v : Verbose report


The following variables can be used in the -cCommand (must be upper case)

@FILE,
@FNAME_WITHOUT_EXT,
@EXT,
@PATH,
@RELPATH,

@ISDIR,
@FSIZE,
@FDATE,
@FTIME

To ECHO Hex characters in the Command use: 0xHH

Examples:

To find every text file on the C: drive
FORFILES -pC:\ -s -m*.TXT -c"CMD /C Echo @FILE is a text file"

To show the path of every HTML file on the C: drive FORFILES -pC:\ -s -m*.HTML -c"CMD /C Echo @RELPATH is the location of @FILE"

List every folder on the C: drive
FORFILES -pC:\ -s -m*. -c"CMD /C if @ISDIR==TRUE echo @FILE is a folder"

For every file on the C: drive list the file extension in double quotes
FORFILES -pc:\ -s -m*.* -c"CMD /c echo extension of @FILE is 0x22@EXT0x22" List every file on the C: drive last modified over 100 days ago FORFILES -pc:\ -s -m*.* -d-100 -c"CMD /C Echo @FILE : date >= 100 days"

Find files last modified before 01-Jan-1995 FORFILES -pc:\ -s -m*.* -d-010195 -c"CMD /C Echo @FILE is quite old!" note: '0x22' is hex 22 - the double quote character - put these around any long filenames.

Version 1.0 of FORFILES will only search for files newer than a specified date.
Version 1.1 (described above) can search for file dates Newer or Older then a specified date.

version 1.1 can be downloaded from microsoft's ftp site

Related Commands:

FOR - Conditionally perform a command several times.
MUNGE - Find and Replace text within file(s)

Equivalent Linux BASH commands:

for - Expand words, and execute commands
case - Conditionally perform a command
eval - Evaluate several commands/arguments
if - Conditionally perform a command
while - Execute commands



Simon Sheppard
SS64.com