【问题标题】:How to Schedule a daily task to run a batch file?如何安排每日任务以运行批处理文件?
【发布时间】:2018-06-13 14:13:03
【问题描述】:

我正在尝试在 Windows Server 2008 上安排一项任务,以删除文件夹中的一些图像。我创建了一个批处理文件来执行这个,我的代码如下:

forfiles /s /m *.jpg /D -10 /C "cmd /c del @path"

(我没有放目录,因为我将批处理文件存储在我要擦除图像的同一文件夹中,所以没有必要)

我的问题是在我尝试安排此任务自动运行时。因为当我手动运行此文件时,它会成功擦除图像,而且当我安排此任务时,它的条件是在管理员登录时运行它。当我指定运行文件的条件时,无论是管理员登录还是不是,当然还有很高的特权。我不知道为什么在这种情况下,任务在我编程时就开始运行,但它从不运行批处理文件,我可以在任务调度程序中看到我的任务正在运行,但什么也没发生。有人知道吗?

我包括任务计划程序的屏幕截图:

【问题讨论】:

  • 我想我至少会害怕不使用%~dp0 来执行任意删除内容的任务。
  • 我没有放目录,因为我将批处理文件存储在我想擦除图像的同一个文件夹中,所以没有必要) 并不总是如此,尤其是在使用任务调度程序时。
  • 但是我没有遇到批处理文件的问题,因为当我手动运行它时,它可以正确执行,而且当我使用管理员登录选项来安排它时。
  • F: 是本地驱动器还是网络驱动器?
  • 当您选中该框以运行无论用户是否登录时,任务都将从工作​​目录C:\windows\system32 开始。您需要在脚本顶部更改目录或使用/P 选项和FORFILES

标签: windows batch-file cmd scheduled-tasks


【解决方案1】:

即使没有用户登录也安排任务运行时,工作目录变为C:\Windows\system32。因此,您必须跳转到正确的目录,否则将找不到文件。此外,您必须使用cd %~dp0 而不是cd %CD%,因为%CD% 仍将是system32 文件夹,而%~dp0 将是您的批处理文件所在的文件夹。

编辑: 抱歉,我刚刚意识到 Squashman 已经给出了与评论相同的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2015-07-03
    • 2019-04-06
    相关资源
    最近更新 更多