2.11 查找指定日期时间之后修改过的文件 https://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"