FOR
Conditionally perform a command several times.
syntax-
FOR-Files
FOR %%parameter IN (set) DO
command
syntax-
FOR-Files-Rooted
at Path
FOR
/R [[drive:]path] %%parameter IN (set) DO
command
syntax-
FOR-Folders
FOR
/D %%parameter IN (folder_set) DO
command
syntax-
FOR-List of numbers
FOR
/L %%parameter IN (start,step,end) DO
command
syntax-
FOR-File
contents
FOR
/F ["options"] %%parameter IN (filenameset) DO
command
FOR
/F ["options"] %%parameter IN ("Text string to process") DO
command
syntax-
FOR-Command Results
FOR
/F ["options"] %%parameter IN ('command to process') DO
command
The operation of the FOR command can be summarised as...
Take a set of data
Make a FOR Parameter
%%G
equal to some part of that data
Perform a command (optionally using the parameter as part of the command).
Repeat for each item of data
If you are using the FOR command at the command line rather than in a batch program, use just
one percent sign:
%G
instead of
%%G
.
“Those who cannot remember the past are condemned to repeat it” - George Santayana
FORFILES.exe
(Native command in Vista/Windows7/2008,
via
Resource Kit
for XP)
Select a file (or set of files) and execute a command on each file. Batch processing.
Syntax
FORFILES [/p
Path] [/
m Mask] [/s] [/
c Command] [/
d [+ | -]
{
dd/MM/yyyy |
dd}]
Key
/p
Path The Path to search (default=current folder)
/s Recurse into sub-folders
/C
command The command to execute for each file.
Wrap the command string in double quotes.
Default = "cmd /c echo @file"
The Command variables listed below can also be used in
the
command string.
/D
date Select files with a last modified
date greater than or
equal to (+), or less than or equal to (-),
the specified date using the "dd/MM/yyyy" format;
/D +
dd Select files with a last modified date greater than or
equal to the current date plus "dd" days. (in the
future)
/D -
dd Select files with a last
modified date less than or
equal to the current date minus "dd" days. (in the
past)
A valid "dd" number of days can be any number in
the range of 0 to 32768. (89 years)
"+" is taken as default sign if not specified.
Command Variables:
@file The name of the file.
@fname The file name without extension.
@ext Only the extension of the file.
@path Full path of the file.
@relpath Relative path of the file.
@isdir Returns "TRUE"
if a file type is a directory,
and "FALSE" for files.
@fsize Size of the file in bytes.
@fdate Last modified date of the file.
@ftime Last modified time of the file.
To include special characters in the command line, use the
hex code
for the character in 0xHH
format (ex. 0x09 is theTAB character, 0x22 is the double quote " character.) so
"C:\Program
Files\"
becomes
^0x22C:\Program^ Files\^0x22
Internal CMD.exe commands must be preceded with "cmd /c".
If ForFiles finds one or more matches if will return %errorlevel% =0
If ForFiles finds no matches if will return %errorlevel% =1 and will print
"ERROR: No files found
with the specified search criteria."
The old NT4 version of ForFiles
used unix style -parameters, and could only match
dates
newer
than a specified date using the following command variables names: (which must
be upper case) @FILE, @FNAME_WITHOUT_EXT, @EXT, @PATH, @RELPATH, @ISDIR,
@FSIZE, @FDATE, @FTIME
The Windows 2000 version of ForFiles also used unix-style parameters but is otherwise the
same as current versions.
Last modified dates set in the future are not common but can happen when your computer clock
date/time is changed e.g. due to daylight savings time.
Chia sẻ với bạn bè của bạn: