Skip to content

Latest commit

 

History

History
72 lines (45 loc) · 1.73 KB

201607271351.txt.md

File metadata and controls

72 lines (45 loc) · 1.73 KB

2.11 查找指定日期时间之后修改过的文件

http://scz.617.cn/windows/201607271351.txt

A: scz 2016-07-27 13:51

$ forfiles.exe /?

forfiles [/p pathname] [/m searchmask] [/s] [/c command] [/d [+|-]{yyyy/mm/dd|days}]

/p pathname

起始目录,默认是当前目录(.)

/m searchmask

文件名通配符,默认是*。

注意,**.*不等价。

大小写不敏感

/s

递归遍历子目录

/c "command"

针对匹配项执行命令,必须使用双引号,默认命令是"cmd /c echo @file"

在command中可以使用下列变量

@file       文件名
@fname      无扩展名的文件名部分
@ext        文件名的扩展名部分
@path       绝对路径
@relpath    相对路径
@isdir      匹配项是目录时返回TRUE,否则返回FALSE,TRUE和FALSE必须大写
@fsize      文件大小
@fdate      文件最后修改日期
@ftime      文件最后修改时间

command中可以使用0xHH,比如0x09表示TAB

/d date

缺省使用"+"

-yyyy/mm/dd

    表示文件最后修改日期位于指定日期之前(<=)

+yyyy/mm/dd

    表示文件最后修改日期位于指定日期之后(>=)

-days
+days

    相比今天进行加减,有效范围是[0,32768]

示例:

forfiles /p c:\windows /s /m dns*.* forfiles /s /m *.txt /c "cmd /c type @file | more" forfiles /p c:\ /s /m *.bat forfiles /d -30 /m *.exe /c "cmd /c echo @path 0x09 was changed 30 days ago" forfiles /d 2001/01/01 /c "cmd /c echo @fname is new since Jan 1st 2001" forfiles /d +2016/7/27 /c "cmd /c echo @fname is new today" forfiles /m *.exe /d +1 forfiles /s /m *.doc /c "cmd /c echo @fsize" forfiles /m *.txt /c "cmd /c if @isdir==FALSE notepad.exe @file"