【问题标题】:Batch runs manually but not in scheduled task批处理手动运行但不在计划任务中
【发布时间】:2012-09-12 20:34:14
【问题描述】:

我一般不写batches,但我目前有一个batch,它使用forfiles 将我的FLV 从一个文件夹复制到另一个文件夹。当我手动运行批处理时,它每次都有效,但从计划任务中,它会引发 (0x1) 错误。

forfiles -p "C:\Program Files\Adobe\Flash Media Server 4.5\applications\name\streams" -m *.flv -s -d -1 -c "cmd /c copy @file ^0x22C:\Program^ Files\Adobe\Flash^ Media^ Server^ 4.5\applications\name\output\"

不确定计划任务不喜欢什么语法。

更新

在我的计划任务下,我有以下操作:

Program/script:  name.bat
Start in (optional): \\servername\file\to\batch

【问题讨论】:

  • 这解决了我的问题。我有一个带有 sql cmd 的批处理文件来备份 sql server 数据库。我使用了一个特殊的用户来安排任务。运行计划任务数据库未备份。切换到系统用户创建了我需要的备份。谢谢!

标签: batch-file windows-server-2008 scheduled-tasks


【解决方案1】:

您好,这可能会有所帮助, 我也面临同样的问题。 只需将起始路径设置为:

这里 start in path 是批处理文件的路径: 就像您输入程序脚本一样: “E:\程序相关文件\demo.bat” 然后在 startin 中通过: E:\program 相关文件并完成!

谢谢

阿伦·夏尔马

【讨论】:

  • 工作就像一个魅力,谢谢
【解决方案2】:

当我的 Start in (optional): 路径是 UNC 路径时,它不会工作。所以我将我的批次移到服务器上,一切正常。

UNC in Windows Batch Files

forfiles with UNC path

【讨论】:

  • 这确实是一个解决方法 - 不是解决您的问题的方法。
【解决方案3】:

请参阅下面的屏幕截图。 你需要把用户改成system

【讨论】:

  • 我必须说,Windows 计划任务不是我最喜欢的。如果可以的话,我建议您运行一台小型 linux 机器并使用 cron 作业来处理它。
【解决方案4】:

在 Server 2008 R2 上,当在域用户凭据下运行批处理文件时,在本地安全策略>本地设置>用户权限分配中确认“作为批处理作业登录”安全性, 即使那样,我的批处理(将日志文件复制到网络共享)也不会按计划任务运行,直到我在选项卡 General 中选择选项“以最高权限运行”(默认未选中!) The option Run whether user is logged on or not was also selected, with radio-button, but I guess this is quite standard, when selecting to run the task using a domain user account.

对于选项卡操作:直接在“程序/脚本:”中指定整个批处理文件名(包括其路径)可以正常工作(使用 Server 2008 R2) 在批处理文件中使用双引号不会导致任何问题。

【讨论】:

    【解决方案5】:

    此类问题的最常见原因是权限:计划任务始终使用您的用户凭据运行。如果您希望以 身份运行计划任务,则必须将其设置为 或替代用户。

    除了我希望你的代码行是你的批处理文件的内容之外,你不要试图直接运行这个命令。还是你?

    附:这些^0x22^ 在你的代码中做了什么?

    【讨论】:

    • 我有计划任务在有权限的用户下运行。 ^0x22,如果我的目标路径中没有 ^0x22,则批处理不起作用。
    • 只是为了消除潜在问题:尝试指定cmd 的完整路径,即C:\WINDOWS\system32\cmd.exe 和简单(没有空格)复制目标路径。如果这没有帮助,我不知道还有什么可能。找到解决方案后发布您的解决方案。
    【解决方案6】:

    我知道这是一个老问题,但只是想分享一些信息。

    (0x01) 错误代码也可以引用未找到的资源。因此:

    • 批处理文件中引用的所有文件/文件夹都应该可供用户使用哪个帐户来运行该计划任务;
    • 在结合“无论用户是否登录时运行”选项使用网络位置时要注意;
    • 上述选项使用起来可能很棘手,因为某些资源可能只有在登录后才可用。

    【讨论】:

      【解决方案7】:

      要在计划任务中运行 .bat 文件,您需要在启动选项中指定 .bat 文件路径 - 尽管 .bat 文件与 .exe 位于同一目录中。此外,我将其标记为以最高权限运行。做完这两件事后,任务突然起飞,没有任何问题!

      【讨论】:

        猜你喜欢
        • 2014-12-12
        • 2015-02-23
        • 2018-11-05
        • 2014-09-14
        • 2013-03-01
        • 1970-01-01
        • 2015-04-22
        • 2016-10-16
        • 2023-03-08
        相关资源
        最近更新 更多