FORFILES不包括今天的文件不起作用

时间:2015-02-13 19:31:42

标签: batch-file

在页面上阅读:http://blogs.msdn.com/b/oldnewthing/archive/2012/08/03/10334560.aspx

我们看到他讨论了:使用/ D + 0,并且有理由使用/ D -0来包含今天创建的文件。

我正在开展一个网络存档项目,而且非常接近......

FORFILES /P D:\logs\ /M dump.log* /D -0  /C "cmd /c ECHO @file"
FORFILES /P D:\logs\ /M server.log* /D -0  /C "cmd /c ECHO @file"

事实上,当使用/ D -0或/ D + 0

时,我得到相同的结果

2 个答案:

答案 0 :(得分:2)

/ D是日期偏移。通常,后跟一个负数,表示该命令应该在最后修改日期小于或等于指定偏移量的文件上运行。在极少数情况下,+0可用于最后修改日期在今天之后的文件。

要在处理时忽略今天的文件,请使用/D -1处理所有其他文件......除非您有将来的文件。

答案 1 :(得分:1)

日期选择

/d +date  files with date >= to the indicated date
/d -date  files widh date <= to the indicated date
/d +n     files with date >= to today-n days
/d -n     files with date <= to today-n days

因此,根据daten的值挑选一个时间点,然后+-选择所选文件是否更新({ {1}})或更早(-)(或两者都相同)到指定点。

因此,要选择除今天更改的文件之外的所有文件+。也就是说,我们选择昨天的日期(/d -1),然后选择日期更低或相等(1)到目前为止的所有文件

-将选择今天的日期(今天 - 0)并选择日期大于或等于(/d +0)的文件到选定日期,因此,所选文件是今天更改的文件