2

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

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

任何反馈都会有所帮助。

我什至试过这个链接解决方案不起作用。

4

3 回答 3

3

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

于 2013-03-13T20:02:25.617 回答
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
    

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

于 2014-02-24T18:23:57.270 回答
0

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

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

于 2013-10-31T12:18:44.633 回答