forfiles 语法

forfiles命令选择一个或多个文件,并对它们执行另一个命令。 它可以选择文件的标准,包括文件名和修改时间。 它可以在命令行中使用,也可以作为批处理作业的一部分。

FORFILES [/P pathname] [/M searchmask] [/S] [/C command]
         [/D [+ | -]{MM/DD/YYYY | dd}]
/P pathname 开始搜索文件的路径。如果未指定,则使用当前目录(.)。
/M searchmask

搜索名称与搜索掩码searchmask匹配的文件(以及目录,如果指定了/S选项)。

其中可能包含通配符。

默认的搜索掩码是“*”(星号),它匹配所有的文件和目录。

/S 递归到子目录中,如“DIR /S”。
 /C command 在每个文件上执行命令,其中命令是命令字符串,用双引号括起来。

默认命令是“cmd /c echo @file”,它显示文件的名称。

以下变量可以在命令字符串中使用:

@file—返回文件的名称,不包含路径信息。
@fname—返回不带扩展名的文件名。
如果文件有多个扩展名,例如file.txt。
doc,只有后面的扩展名被截断,例如file.txt的结果。
@ext—只返回文件的扩展名。
如果文件有多个扩展名,则只返回后面的扩展名。
@path—返回文件的完整路径,包括文件名。
@relpath—返回文件的相对路径。
@isdir——如果文件类型是目录,则返回TRUE,如果是文件,则返回FALSE。
@fsize—返回文件的大小,以字节为单位。
@fdate—返回文件的最后修改日期。
@ftime—返回文件的最后修改时间。

要在命令行中包含特殊字符,请对0xHH格式的字符使用十六进制代码

(例,对制表符使用0x09)。

所有命令都应该在前面加上“cmd /c”。

尽管如果命令是不需要参数的外部命令,可以省略它。

/D [+ | -]{MM/DD/YYYY | dd}

使用“MM/DD/YYYY”格式选择最后修改日期大于或等于指定日期(+)或小于或

等于指定日期(-)的文件。

也可以选择文件的最后修改日期大于或等于(+)当前日期加上“dd”天,或小于或等于(-)当前日期

减去“dd”天。

有效的“dd”天数可以是0-32768范围内的任何数字。
如果没有指定,则使用“+”作为默认符号。

forfiles 示例

forfiles /d -30

列出当前目录中在过去30天内未被修改的任何文件的名称。

forfiles /d -30 /c "cmd /c echo @path @fdate"

与上面的命令相同,但是显示带有文件名的完整路径,以及文件最后修改的日期。

forfiles /d +"03/15/2018"

列出当前目录中2018年3月15日以后修改的所有文件。

forfiles /d -"03/15/2018"

列出当前目录中2018年3月15日以后未修改的所有文件。

forfiles /m "*.txt" /c "cmd /c notepad @file"

对于当前目录中扩展名为.txt(文本文件)的每个文件,使用记事本打开该文件。

forfiles /m "*.jpg" /c "cmd /c mspaint @file"

对于当前目录中扩展名为.jpg (JPEG文件)的每个文件,使用Microsoft Paint打开该文件。

forfiles /s /p "C:\Users\myuser\Downloads" /m "*.zip" /d -"03/15/2018" /c "cmd /c move @path C:\oldfiles"

对于c:users失败myuser失败下载中的每个.zip (zip文件)或其子目录,如果该文件最后一次修改是在2018年3月15日之前,则将其移动到目录C:\oldfiles。

forfiles /s /p "C:\Users\myuser\backups" /m "*.zip" /d -90 /c "cmd /c del @path"

对于c:users失败myuser失败目录下的每个zip文件或其子目录,如果该文件在过去90天内没有被修改,则删除它。

forfiles /s /p . /m "*.zip" /c "cmd /c move @file @fname"

对于当前目录和所有子目录中的每个文件,删除文件名的扩展名(如果存在)。
如果文件名有多个扩展名,则只删除最后一个。例如,file.bak将被重命名为file, file.doc.bak将被重命名为file.doc。

posted @ 2021-03-28 16:19  iDropper  阅读(801)  评论(0编辑  收藏  举报