任务计划未运行批处理文件

时间:2013-03-13 19:56:23

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

我有文件做某些事情,如果我手动运行该文件但在任务调度程序中设置时它不会运行它会正常工作。

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

任何反馈都会有所帮助。

我甚至试过this link解决方案无效。

3 个答案:

答案 0 :(得分:3)

在这种情况下,您最需要确保正确设置脚本运行的目录(“开始”)。通常这与包含脚本的目录相同。您可以在计划任务的属性中设置它。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我不知道这是否会有所帮助,但是在一个又一个问题上猛烈抨击了太多时间,我终于得到了我自己的批处理文件,以便作为计划任务正常工作。我在这个过程中学到的一些东西:

  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
    
  5. - 从命令行工作,但不是作为计划任务。我不得不将%flag的初始化移到第一个IF之前完成。