我在 Windows XP Pro 和 Windows 7 中运行了相同的计划任务。XP Pro 运行良好,而 Windows 7 总是在任务计划程序 UI 的上次运行结果列中返回 0x2(这意味着“系统找不到指定的文件”;但是,从命令行执行没有问题)。
计划任务每天执行一个 .bat 文件。.bat 文件包含执行 Perl 脚本的调用。正如我在上一段中所述,它在 XP 下执行没有任何问题,但在 Windows 7 下则不行。
Windows 7 下的任务设置为“无论用户是否登录都运行”。在这种情况下,任务是我,我是系统的唯一用户。任务还设置为“以最高权限运行”。而且任务没有被隐藏。.bat 文件在命令行中执行得非常好 - 它按预期调用 Perl 脚本,并且 Perl 脚本执行其工作。
我四处寻找这个问题的合适答案。到目前为止我什么也没找到。这个 Win7 计划任务到底是怎么回事?我快要抓狂了。
答案1
我也遇到过这个问题。任务调度程序的 0x2 似乎表示找不到批处理文件。这是错误的 - 我添加了一些管道箭头 (>>) 将批处理文件输出到日志文件,然后运行计划任务。
尽管在任务计划程序中得到 0x2,我发现批处理文件实际上已经运行,但遇到了错误(显示在日志文件中)。
另一个可以尝试的方法是,以系统或网络服务的身份运行该任务。
答案2
我刚刚遇到了同样的问题,并已解决。在“操作”选项卡的“程序/脚本”下:只需输入批处理文件的名称。在“开始于(可选):”部分,输入文件路径,不带引号,不带结尾斜杠。
下面的示例是从 C 根目录下的测试文件夹运行 test.bat 文件:
程序/脚本:test.bat
开始于(可选):C:\Test
答案3
我尝试使用 SyncToy 2.1 在两个 Windows 7 SP1 工作站之间同步文件夹对。最初,我只是浏览文件并添加任务的参数。它返回代码0x2
。Microsoft TechNet 建议使用“起始位置”字段来确保文件名解析到正确的位置。我将不带引号或尾部斜杠的 SyncToy 目录路径复制到“起始位置”框中,保存并运行任务。结果是成功,代码0x0
!
答案4
与 @Levi 类似,我使用的是映射网络驱动器。但是,就我而言,更简单的解决方案是将其更改为使用 UNC 路径。例如,不要使用此参数:
"W:\blah\script.py"
我现在使用这个论点:
"\\file-server-02\path\blah\script.py"