Windows 计划任务-.bat 永远运行

Windows 计划任务-.bat 永远运行

我有一个计划任务,用于自动清理硬盘上的文件夹;它会删除超过一定天数的文件。

基本上,它会运行一个.bat包含如下内容的文件:

FORFILES /P "D:\Folder1\SubFolder1" /D -30 /C "cmd /c del /F /Q @path"
FORFILES /P "D:\Folder1\SubFolder4" /D -30 /C "cmd /c del /F /Q @path"

我注意到任务经常永无休止;我不知道为什么。.bat手动运行时文件会在几分钟内结束,之后文件夹会被清理。

我猜测原因可能是有时会出现这样的提示:

删除 [...] 您确定吗? (Y/N):_

因为子文件夹中的递归删除。请注意,我在命令中添加了/F/Q切换del

我如何确保任务能够自动回答Y可能出现的任何提示?或者这不是我解决问题的途径 - 我应该改进我的.bat文件吗?

答案1

您的问题似乎是 forfiles 同时找到文件和目录,而您只想删除文件。

请在 /C 命令中尝试此操作:

“cmd /c 如果@isdir==FALSE del@path”

如果 forfiles 迭代器没有指向目录,这才会触发 del 命令。

至少现在我会省略 -q,看看是否一切顺利。但我认为,如果你瞄准正确的目标,你不应该需要/想要抑制确认问题。

此外,仅当您要删除只读文件时才需要 /f。仅当您确定有必要时才强制执行 :)

祝你好运,希望这会有帮助。

相关内容