window Forfiles 命令说明&用法举例

2020-11-2617:10:31window Forfiles 命令说明&用法举例已关闭评论

作者:

主角:

APP离线看全本

FORFILES

forfiles是一款 windows 平台的软件工具,其中选择文件并运行一个命令来操作文件。文件选择标准包括名称和上次修改日期。命令说明符支持一些特殊的语法选项。它可以直接在命令行中使用,也可以在批处理文件或其他脚本中使用。

该 forfiles 命令最初作为加载项提供在Windows NT 资源工具包中。它成为Windows Vista的标准实用程序,作为新管理功能的一部分,所以需要 win7 系统才支持该命令。 

用法

forfiles命令有几个命令行选项。如果没有给出选项或参数,它将输出当前目录中每个文件的名称。

开关论据                                                 含义
/ P路径用于搜索文件的目录(文件夹)。默认为当前目录。 不接受UNC路径(\\ machine \ share)。
/ M搜索掩码一个glob模式(通配符搜索)。仅选择文件与模式匹配的文件。文件扩展名包含在文件名中; 不是路径(文件夹名称)。模式必须与整个名称匹配,或使用通配符。默认设置是匹配所有文件。此选项把glob模式*.**不同。前者仅匹配名称中带有点的文件,而后者甚至匹配没有点或扩展名的文件。即使给定*.*模式,大多数DOS / Windows命令也会匹配没有扩展名的文件。
/ S没有选择子目录中的匹配文件。默认情况下,仅搜索单个指定目录。
/C命令为每个匹配的文件执行给定的命令。命令字符串通常需要用双引号括起来。请参阅下面的命令字符串中的语法。默认命令是CMD /C ECHO @FILE,导致输出(显示)每个匹配文件的名称。
/ d日期根据上次修改日期选择文件。请参阅下面的日期语法。默认情况下,无论日期如何,都会选择文件。
/?没有显示帮助消息(简要使用说明)。禁止文件搜索/命令执行。不得与任何其他开关一起使用。

命令语法

除非如下所述,否则命令字符串按给定的方式执行。

形式的序列0xFF,其中“0x”是文字,“FF”表示任何两位十六进制数,用相应的单字节值替换。这可用于嵌入非打印ASCII字符或扩展ASCII字符。

提供了几个变量,在命令中用作来自每个文件的值的占位符。从技术上讲,变量不是必需的,但如果每个文件的命令都不同,则必须使用变量。

变量含义
@file匹配项的名称,双引号。
@fname匹配项的基名(没有文件扩展名),双引号。
@ext文件扩展名,双引号,没有前导点。如果文件有多个扩展名,则只返回最后一个。如果文件没有扩展名,则返回带引号的空字符串。
@path匹配项的完整路径,双引号,包括驱动器号和文件扩展名(如果有)。
@relpath匹配项的路径,双引号和相对于起始目录(由/ P给出)。每个路径以点和反斜杠(.\)开头。
@isdirTRUE如果匹配项是目录,FALSE则计算文字字符串,否则。
@fsize匹配项的大小,以字节为单位。目录报告大小为零。
@fdate上次修改文件的日期,采用当前用户的本地化日期格式。
@ftime上次修改文件的时间,采用当前用户的本地化时间格式。

日期语法

在给定日期参数的情况下,日期开关(/ D)根据上次修改日期选择文件。

date参数可以作为文字日期给出,格式为MM / DD / YYYY(不接受其他日期格式)。可替代地,日期参数可以被给定为一个数字,在这种情况下,它被认为是指在日龄时(即,天日期当前日期的前几天)。

如果date参数以减号( - )开头,则仅选择在给定日期或之前修改的文件(较旧的文件/先前修改过)。否则,仅选择在给定日期或之后修改的文件(较年轻的文件/稍后修改)。可以给出显式加号(+),但这是默认值。请注意,两种模式都在给定日期选择文件。无法仅在给定日期选择文件(也不在之前或之后)。

示例

要列出驱动器 C: 上的所有批处理文件,请键入:

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

要列出驱动器 C: 上的所有目录,请键入:

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

要列出驱动器 C: 上存在时间多于 100 天的所有文件,请键入:

forfiles /p "c:/" /s /m *.* /d t-100 /c "cmd /c echo @file :date >= 100 days"

要列出驱动器 C: 上 1993 年 1 月 1 日以前创建的所有文件,而且对于日期早于 1993 年 1 月 1 日的文件显示“file is quite old!”,请键入:

forfiles /p "c:/" /s /m *.* /d t-01011993 /c "cmd /c echo @file is quite old!"

要按列格式列出驱动器 C: 上所有文件的扩展名,请键入:

forfiles /p "c:/" /s /m *.* /c "cmd /c echo extension of @file is 0x09@ext0x09" With:

要列出驱动器 C: 上的所有批处理文件,请键入:

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

要列出驱动器 C: 上的所有目录,请键入:

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

要列出驱动器 C: 上存在时间多于 100 天的所有文件,请键入:

forfiles /p c:/ /s /m *.* /d t-100 /c "cmd /c echo @file :date >= 100 days"

要列出驱动器 C: 上 1993 年 1 月 1 日以前创建的所有文件,而且对于日期早于 1993 年 1 月 1 日的文件显示“file is quite old!”,请键入:

forfiles /p c:/ /s /m *.* /d t-01011993 /c "cmd /c echo @file is quite old!"

要按列格式列出驱动器 C: 上所有文件的扩展名,请键入:

forfiles /p c:/ /s /m*.* /c "cmd /c echo extension of @file is 0x09@ext0x09"

删除D:\db_bak目录下20天之前的rar文件,请键入:

forfiles /p "D:\ufbak\db_bak" /s /m *.rar /d -20 /c "cmd /c del @path"

windows 批处理常见命令 那些小事

windows 批处理常见命令

前言 批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat 。批处理文件...
禁用谷歌Chrome、火狐Firefox自动更新及更新提示 那些小事

禁用谷歌Chrome、火狐Firefox自动更新及更新提示

要么就是设置不自动更新,但是更新提示每次打开都会弹出,真烦人。 接下来教你们取消浏览器的自动更新。 1、Firefox取消自动更新。 进入Firefox安装目录下的这个文件夹,我安装路径为 D:\Pr...
win10 优化汇总 那些小事

win10 优化汇总

1.win10 自动更新关闭 Win+r打开运行----输入gpedit.msc----计算机配置----管理模板----Windows更新----配置自动更新----选择已禁用 2.任务计划-Win...
windows 批处理常见命令 那些小事

windows 批处理常见命令

前言 批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat 。批处理文件...