我试图在Windows Server 2008上安排任务来删除文件夹上的某些图像。我创建了一个批处理文件来执行它,我的代码如下:
forfiles /s /m *.jpg /D -10 /C "cmd /c del @path"
(我没有放置目录,因为我将批处理文件存储在我想要删除图像的同一文件夹中,所以它不是必需的)
我的问题是在我尝试安排此任务自动运行时。因为当我手动运行此文件时,IT会成功删除图像,当我在管理员登录时安排此条件以运行它时,问题就出现了。当我指定运行文件的条件时,管理员已记录或没有,当然还有很高的特权。我不知道为什么在这种情况下任务在我编程时开始运行,但它从不运行批处理文件,我可以在任务调度程序中看到我的任务正在运行但没有发生任何事情。有人有线索吗?
我包括任务计划程序的屏幕截图:
答案 0 :(得分:1)
即使没有用户登录,当计划运行任务时,工作目录也会变为C:\Windows\system32
。因此,您必须跳转到正确的目录,否则将无法找到文件。此外,您必须使用cd %~dp0
而不是cd %CD%
,因为%CD%
仍然是system32文件夹,而%~dp0
将是您的批处理文件所在的文件夹。
编辑: 对不起,我刚刚意识到 Squashman 已经给出了与评论相同的答案。