当我在任务调度程序中放置批处理程序时,它没有完成整个任务,那么为什么会发生这种情况呢?



这个问题来自调度程序任务、批处理程序,还是我想使用批处理程序删除的文件夹中的文件?这就是批处理程序:

forfiles /p "D:nameOfFolder" /s /m *.* /d -7 /c "cmd /c del @path"

/M *.*替换为/M *,甚至可以包括没有扩展名的文件,因为forfiles对待通配符的方式与大多数其他命令不同。CCD_ 4甚至可以被省略,因为这无论如何都是默认设置。

注意,forfiles同时迭代文件和目录,因此需要排除后者,因为del可能会尝试删除其内容。因此,实现一个基于forfiles特定变量@isdir的条件。

forfiles /S /P "D:nameOfFolder" /M * /D -7 /C "cmd /D /C if @isdir==FALSE del @path"

顺便说一句,永远不要在(带引号的(路径上附加尾部反斜杠,因为像/P "D:"这样的东西会让命令失败,因为"构成了forfiles的转义引号,破坏了命令行。但是,您可以指定/P "D:."

你确定你有这样的文件吗?

我尝试了以下(非常相似(命令:

forfiles /p "C:Temp_Folder" /s /m . /d -7 /c "cmd /c echo @path"
ERROR: No files found with the specified search criteria.

我注意到的一件事是,目录的名称不应该以反斜杠结尾:

forfiles /p "C:Temp_Folder"  is working fine.
forfiles /p "C:Temp_Folder" is not working.

.本身不是要提供给/m的有效搜索掩码
您必须使用*.*(全部(*.ext(提供的扩展名(*string*.*(名称包含字符串的文件(
?也支持作为搜索掩码来匹配任何字符。示例:*.?a*将匹配任何扩展名类型为a的文件作为第二个字符

最新更新