【问题标题】:ForFiles command does not work with parameter /D +xx [duplicate]ForFiles 命令不适用于参数 /D +xx [重复]
【发布时间】:2021-10-31 11:55:06
【问题描述】:

这找不到文件(目录中的两个只有一天的时间):

for /d %%d in (%mydir%\*) do (
  cd %%d
forfiles /P %%d  /M *.ppt* /D +7 /C "cmd /c echo Converting @file"
)

当我将/D 参数更改为/D -6 时,没关系, /D 25.10.2021 也可以。

但是/D +7 从来没有找到任何文件。

这是错误还是功能?

【问题讨论】:

  • 你真的有下周创建的文件吗?
  • 啊,那是我的问题.. 我认为它显示了过去 7 天的所有新文件。你说的对。我读了 3 次文档.. 我的错...对不起。
  • 有什么方法可以显示所有更新后 7 天的文件吗?
  • forfiles' /D 选项在+ 和几天内都没用,因为它会查找将来修改的项目,如果没有时间机器,这当然是无用的。但是有一个解决方法——看看这个:FORFILES date -after- (date calc in cmd file)

标签: windows batch-file cmd forfiles


【解决方案1】:

这是一个示例,它改编自aschipfl's answer 中显示的相同方法,在其comment 的链接中。

@Set "MyDir=%UserProfile%\Videos"
@For /F "Delims=" %%G In ('Dir "%MyDir%" /B /A:D 2^>NUL') Do @For /F "Delims=" %%H In ('^"Dir /B /A:-D 1^>NUL 2^>^&1 ^&^& %SystemRoot%\System32\forfiles.exe /P "%MyDir%\%%G" /D -0 /C "%SystemRoot%\System32\cmd.exe /D /C 0x22If @IsDir==FALSE %SystemRoot%\System32\forfiles.exe /M @File /D -8 1>NUL 2>&1 || Echo @Path0x22" 2^>NUL^"') Do @Echo Converting %%H
@Pause

我省略了任何解释,因为上面链接的答案解释了方法,这基本上将该方法包装在 For /F 循环中。

【讨论】:

  • 你成就了我的一天!谢谢 !格雷西!丹克!谢谢!
猜你喜欢
  • 2019-09-10
  • 1970-01-01
  • 2016-12-22
  • 2017-06-26
  • 2016-05-09
  • 2012-06-14
  • 2019-06-03
  • 2021-10-30
  • 2016-10-07
相关资源
最近更新 更多