【问题标题】:When I put a batch program in the task scheduler, it didn't finish the whole task, so why did this happen?当我将批处理程序放入任务调度程序时,它并没有完成整个任务,那么为什么会发生这种情况呢?
【发布时间】:2022-01-17 13:12:17
【问题描述】:

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

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

【问题讨论】:

    标签: windows batch-file scheduled-tasks delete-file forfiles


    【解决方案1】:

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

    考虑到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:\."

    【讨论】:

    • 我认为您的答案与我的结果相同。
    • 嗯,你的问题描述很差! »它没有完成整个任务« 是什么意思,到底发生了什么?是否有任何错误信息?任务是如何设置的?任务是否有足够的访问权限来删除文件?让我建议您edit您的问题并澄清;否则我们必须猜测......
    • 我用这个批处理文件来删除非常大的文件,这些文件需要几天才能删除,所以我把它放在任务计划中,在周末执行,周末后我打开文件夹看看碰巧我发现只是删除了一些文件而不是全部,我想知道这个任务没有删除所有文件,因为任务计划或命令或文件有问题。
    【解决方案2】:

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

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

    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.
    

    【讨论】:

    • 这个批处理程序和我一起工作,但没有删除所有文件。
    • Nono,它只是显示所有文件的名称。如果这可行,那么您可能会尝试查看为什么您的文件没有被删除:是否有任何不正确的用户权限?这些文件是否仍在被某些程序使用? ...?
    • 其实有些文件被删除了,我想知道为什么批处理程序没有全部删除?你懂我吗?
    • 当您启动我的命令时,您应该会看到所有要删除的文件。启动命令时,应删除所有文件。如果这没有发生,您看到的错误消息是什么? (不要在任务计划程序中启动批处理文件,而是直接在命令提示符中启动,以便查看错误消息)
    • 我无法在没有任务计划的情况下启动它,因为它需要很长时间(文件很大)。
    【解决方案3】:

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

    【讨论】:

    • 你能写出整个命令吗?因为我没听懂。
    • 好吧,提问者使用了*.*,由于代码格式错误,显示为.。但是*.* 不应与forfiles 一起使用,因为这会排除没有扩展名的文件(是的,forfiles 对通配符的处理方式不同)...
    猜你喜欢
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    相关资源
    最近更新 更多