【发布时间】:2020-02-02 01:32:09
【问题描述】:
我想在 cmd 文件中使用 FORFILES,以便在给定日期到“今天”之后对所有文件执行操作。我可以使用 forfiles /d +07/10/2013 /c "cmd /c echo @fname" 之类的东西来处理 7/10/13 之后的所有事情,但我想要的是能够从“今天”之前的 90 天开始计算。
是否有可以在 cmd 文件中使用的日期计算语法,它可以让我指定“今天之前的 x 天”来输入 FORFILES?
我更喜欢不使用 VBS(并找到了一个可以在 VBS 中工作的代码 sn-p),虽然我也可以为 Powershell 重写我的脚本,但理想情况下我想坚持使用 cmd。
澄清一下,“-90”会查找所有超过 90 天的文件; "+90" 将查找所有比今天晚 90 天更新的文件(这基本上是无用的,因为文件很少写有未来的日期),而 "+7/30/2013" 将查找所有比 7/30 更新的文件/2013。我想要最后一个时间段,最好能够将一个天数变量传递给 CMD 文件,即“在今天之前的 x 天之后”,即“在最后 x 天”。因此,我希望能够在 cmd 文件中计算该日期,而不是使用上面显示的硬编码日期。
【问题讨论】:
-
看我的回答here。
-
是一个批处理文件,创建/运行/删除一个VBS脚本,然后运行forfiles命令,好吗?
-
出于几个原因,我想完全避免使用 VBS,但我意识到我正在切断一种方法。
-
Endoro,我认为这可行,但我不确定我是否理解它。似乎您正在构建一个目录列表文件,然后删除早于日期范围的条目。那是对的吗?这实际上可能很好,尤其是。在这种情况下,我实际上是在构建一个文件列表之后,我正在提供给其他东西。请澄清我是否没有正确解析,即“它是如何工作的”。 OBTW,我以为我在发布这个问题之前已经全面搜索了答案!
标签: windows date powershell batch-file cmd