【问题标题】:Task Scheduled not running batch file任务计划未运行批处理文件
【发布时间】:2013-03-01 23:18:53
【问题描述】:

我有文件可以做一些事情,如果我手动运行文件,它可以正常工作,但在任务计划程序中设置时它不会运行。

批处理文件位于 Windows 7 桌面上的文件夹中。

任何反馈都会有所帮助。

我什至尝试过this link 解决方案不起作用。

【问题讨论】:

  • 当你说某件事不起作用时,你必须说它是如何不起作用的。您的问题中没有足够的信息来提供任何建议。
  • 任务是否在不同的用户下运行?是否启用了“以最高权限运行”?你的脚本是什么样的?您是否已经向其中添加了一些日志记录/调试代码?
  • @AnsgarWiechers 任务在启用highest privileges 的情况下以同一用户(我)身份运行。我的脚本工作正常,我已经手动测试过(如果我双击批处理文件就可以了)。
  • @AbqBill 我的意思是它不应该这样做。我的脚本调用 wget,它与我的批处理文件位于同一文件夹中,并向我发送电子邮件。正如我所说,如果我双击批处理文件而不是通过任务计划程序,它可以工作,我不知道为什么它不能通过任务计划程序工作。

标签: windows windows-7 vbscript batch-file scheduled-tasks


【解决方案1】:

在这种情况下,您很可能需要确保脚本运行所在的目录(“开始于”)设置正确。通常这是包含您的脚本的同一目录。您可以在计划任务的属性中进行设置。

【讨论】:

  • 我在字段中添加了我的目录路径?这就是你的意思,它仍然没有工作。 C:\Users\USERNAME\Desktop\GnuWin32\bin 和我的 bat 文件在同一个文件夹中。
  • 因为您使用的是 GnuWin332,您还需要检查您的 PATH 设置以确保它包含 GnuWin32 工作所必需的内容。您需要检查该项目的要求。 computerhope.com/issues/ch000549.htm
  • 我试过了,我在某个网站上读到过,这不是 PATH 的问题。
【解决方案2】:

作为测试,尝试将 .bat 文件移动到具有基本权限的目录(例如,可能是共享目录)。

我和你有同样的问题。我的 .bat 文件位于具有一些限制性权限的文件夹中,因此只有我的用户帐户可以访问它。即使我已将任务计划程序设置为使用我的凭据,它仍然失败。将 .bat 文件移动到另一个目录可以解决问题。

【讨论】:

    【解决方案3】:

    我不知道这是否会有所帮助,但是在一个接一个地解决一个问题太多小时后,我终于让我自己的批处理文件作为计划任务正常工作。我在这个过程中学到的一些东西:

    1. 如果您是创建计划任务的用户,您还必须是使用密码登录系统的用户。
    2. 批处理文件中对文件名的任何引用都必须是完全限定路径的最后一部分,以驱动器号开头。
    3. 如果您进行比较,例如 [%flag%] EQU [0],请注意“[”和“]”符号是包含在要比较的数据中的字符串文字。
    4. 如果您的批处理文件的一部分设置了一个变量并包含一个“FOR”循环,该循环调用您希望更改变量的子例程,您需要确保该变量在批处理中尽早初始化文件。也就是说,像这样:

      IF ... (
        SET %flag=0
        FOR ... (CALL :subr)
        IF [%flag%] EQU [1] ( main scheduled-task command goes here)
      )
      GOTO :eof
      
      :subr
        IF ... (SET %flag=1)
      
      :eof
      

    --从命令行工作,但不是作为计划任务。我必须在第一个 IF 之前完成 %flag 的初始化。

    【讨论】:

      猜你喜欢
      • 2014-09-14
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      相关资源
      最近更新 更多