Windows 2008 服务器任务调度程序不运行 .bat 批处理作业 [关闭]

Posted

技术标签:

【中文标题】Windows 2008 服务器任务调度程序不运行 .bat 批处理作业 [关闭]【英文标题】:Windows 2008 server task scheduler does not run .bat batch job [closed] 【发布时间】:2011-07-02 09:21:39 【问题描述】:

我在 Windows 2008 服务器上有一个批处理文件,当从命令行调用它时工作正常。但是,当我设置一个计划任务来运行这个作业时,它不能正常工作。

任务调度程序确实显示任务正在定期运行,它没有显示任何错误。但是,批处理文件不处理它应该处理的内容。

欢迎任何有关如何解决此问题的想法

【问题讨论】:

bat 文件设置在哪个用户下运行?它可能没有所需的权限。它不会显示任何错误但不会运行。 【参考方案1】:

Windows Server 2008 不会运行批处理文件中带有引号 " 的任何批处理文件。 见http://technet.microsoft.com/en-us/library/dd851678.aspx

【讨论】:

这家伙应该拿奖牌!!!多亏了这个答案,我才能使一切正常。我发现一个简单的解决方法是:您创建另一个批处理文件,您应该将其命名为“DummyCaller.bat”,只有一行:调用您的另一个批处理文件(例如:调用 mybatch.bat)。 MyBatch.bat 是您的原始 bat 文件,其中包含引号并且不起作用。但是,如果你这样称呼它,它就完美了。 或者你可以在这里下载修复程序support.microsoft.com/kb/951246【参考方案2】:

我遇到了类似的问题,当我在“程序/脚本”字段中有完整的文件路径时,我的 .bat 文件无法正确执行。

"D:\path\to\file\somebat.bat" 没有执行。 (带引号)

当我将 D:\path\to\file\(不带引号)放在 Start in (optional): 字段和 somebat.bat 中的 Program/script: 字段 somebat.bat 正确执行。

想一想...不完全确定为什么在 Program/script: 中包含 "D:\path\to\file\somebat.bat" 不起作用。

也许有人可以对此有所了解?

【讨论】:

非常感谢!我一直在上下调整我的 .bat 文件及其所在文件夹的所有权限设置,但在尝试此技巧之前没有任何效果。 这是对我有用的答案。谢谢! 就是这样,尽管从另一个工作正常的任务中复制。真是浪费时间。感谢您的回答。【参考方案3】:

就我而言,我有“无论用户是否登录都运行”。当我更改为“仅在用户登录时运行”时,它工作正常。

【讨论】:

【参考方案4】:

确保任务在具有必要权限的帐户下运行。当您直接从命令行运行批处理脚本时,它会在您的用户帐户下运行,该用户帐户的权限可能与用于计划任务的默认帐户不同。

【讨论】:

任务以管理员身份运行。我看到一篇文章说如果组有权访问目录是不够的,用户应该可以直接访问目录。所以,我也这样做了。行为没有变化 如何更改批处理脚本以在操作完成时写入日志文件。这样您就可以缩小到导致错误的步骤。

以上是关于Windows 2008 服务器任务调度程序不运行 .bat 批处理作业 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Windows 任务调度程序可在几秒钟内执行任务

使用 Windows 任务调度程序和 xampp 服务器运行带有 curl 的 php 脚本

如果脚本正在由任务调度程序运行,我如何捕获它的输出?

如何从 Windows 任务调度程序在(ubuntu bash windows 10)上运行程序

用于调度代码重复运行的 Windows 任务调度程序有多可靠?

Windows 任务计划程序 - 仅在时间窗口内运行