使用Forfiles根据年龄处理文件
- 类别: 视窗
了解某些命令行魔术总是很好,因为有时以这种方式处理命令更容易。
本指南演示了 档案 Windows Vista和Windows 7中的命令(更新:在Windows的较新版本中也可用)。
Forfiles可以根据名称,文件扩展名和年龄来处理文件。例如,可以在目录中找到所有早于20天的文档,或者在c: documents中查找自特定日期以来已更改的所有文档。
forfiles命令可以与处理选项结合使用,以删除那些文件,或创建与过滤器匹配的所有文件的列表。让我们仔细看看forfiles命令。
文件[/ P路径名] [/ M搜索掩码] [/ S] [/ C命令] [/ D [+ | -] dd / MM / yyyy]
说明:选择一个文件(或一组文件)并对该文件执行命令。这对于批处理作业很有帮助。
参数列表:
- / P路径名指示开始搜索的路径。默认文件夹是当前工作目录(。)。
- / M searchmask根据搜索掩码搜索文件。默认的搜索掩码是'*'。
- / S指示forfile递归到子目录中。就像“ DIR / S”一样。
- / C命令指示要为每个文件执行的命令。命令字符串应用双引号引起来。默认命令是“ cmd / c echo @file”。
可以在命令字符串中使用以下变量:
- @file-返回文件名。
- @fname-返回不带扩展名的文件名。
- @ext-仅返回文件的扩展名。
- @path-返回文件的完整路径。
- @relpath-返回文件的相对路径。
- @isdir-如果文件类型是目录,则返回“ TRUE”,对于文件则返回“ FALSE”。
- @fsize-返回文件的大小(以字节为单位)。
- @fdate-返回文件的最后修改日期。
- @ftime-返回文件的最后修改时间。
要在命令行中包含特殊字符,请使用十六进制代码表示0xHH格式的字符(例如,制表符为0x09)。内部CMD.exe命令前应带有'cmd / c'。
/ D日期使用'dd / MM / yyyy'格式选择最后修改日期大于或等于指定日期的(+)或小于或等于(-)的文件;或选择最后修改日期大于或等于(+)当前日期加上'dd'天,或小于或等于(-)当前日期减去'dd'天的文件。有效的“ dd”天数可以是0-32768范围内的任何数字。如果未指定,则将“ +”用作默认符号。
/?显示此帮助消息。可以通过输入命令forfiles /?打开此帮助文件。在命令提示符下。按Windows-R,键入cmd,然后按Enter键以在Windows中启动命令行。
命令 forfiles / P c: test / M .doc / S / D -10
在目录c: test及其所有子目录中搜索扩展名超过10天的.doc文件。
参数/ p后跟目录,定义起始目录,/ s包括搜索中的子目录,/ m根据输入的字符串过滤文件和文件夹,/ D定义日期或时间跨度。
/ C命令用于处理进一步找到的文件。例如,它可以用于运行以下命令: / C'cmd / c echo @fname'> test.txt
回显找到的每个文件的名称,并将结果保存在同一目录中的text.txt中。
完整的命令如下所示 forfiles / P c: test / M .doc / S / D -10 / C'cmd / c echo @fname'> test.txt
另一种可能性是删除与搜索匹配的文件,这是通过命令完成的 / C'cmd / c del @文件
但是,建议在发出delete命令之前先测试输出,以确保仅删除正确的文件。有经验的用户可以创建一个批处理文件来定期执行forfile。