【发布时间】:2017-09-07 15:56:51
【问题描述】:
我在 .bat 中使用以下代码来清理目录。它是删除时间戳超过 14 天的任何目录。问题是,这个脚本有效并删除了相应的目录。但是它返回错误:
ERROR: The system cannot find the file specified我无法破译造成这种情况的原因,并想追根究底。
FORFILES /S /D -14 /p %cd% /M "*" /C "cmd /c IF @isdir == TRUE rmdir @path /s /q"
【问题讨论】:
-
可以显示日志文件吗?
-
这只是一个猜测。我将假设 FORFILES 枚举了它必须首先找到的所有目录。然后它将它们传递给需要执行的 cmd。因此,因为您使用了 /S 选项,它枚举了一个存在于您已删除的父目录中的子目录。
-
它看起来好像你同时使用
/P和/M无缘无故,所以也许使用FORFILES /S /D -14 /C "CMD /C IF @ISDIR==TRUE IF EXIST @PATH RD /S /Q @PATH"会更好。 -
根据@Squashman 评论让它工作。 @Compo 是正确的,我不需要 /p 或 /m ...这是有效的代码..
FORFILES /D -14 /C "cmd /c IF @isdir == TRUE rmdir @path /s /q"。有没有办法现在也查询文件,不仅是日期,而且说只包含数字的目录名称......我将更新问题来表示这一点。 -
FORFILES中不支持正则表达式。
标签: windows batch-file exe