【问题标题】:Windows scheduled taskWindows 计划任务
【发布时间】:2010-05-14 14:43:39
【问题描述】:

我创建了一个 Windows 7 计划任务:

schtasks /create /tn MyTask /tr C:\temp\test\MyScript.bat /sc MINUTE

问题是这个任务似乎是由 Windows 执行的,但我认为它找不到正在运行的 BAT 脚本。有一个快速闪烁窗口,但无法读取问题所在。

另一方面,如果我将脚本放在 Windows/System32 下,一切正常。

schtasks /create /tn MyTask /tr C:\windows\system32\MyScript.bat /sc MINUTE

有人知道为什么第二个计划任务比第一个更有效吗?

这整个过程是从网页在 Windows 机器上安装程序的一部分。所以我想将 BAT 文件安装在正确的目录而不是 System32 中。

感谢您的帮助。

【问题讨论】:

  • PAUSE 放在.bat 的底部,它将保持可见。

标签: windows dos scheduled-tasks


【解决方案1】:

C:\temp 是一个临时目录,可能会被操作系统定期清理。因此,您应该首先检查以确保批处理文件确实存在,然后考虑将其移动到更永久的位置。

其次,您是否尝试过从预定位置手动运行任务?这应该可以帮助您查看输出是什么。您还可以将 PAUSE 添加到批处理文件的底部(按照评论者的建议),以确保它保持足够长的时间让您看到输出。

一些可能的问题是:

  • 您正在通过相对路径使用位于 %windir% 中的某些资源,当批处理文件从其他位置运行时,该资源将不起作用。
  • 计划任务正在以其他用户身份运行,并且没有适当的权限。
  • 任务正在执行需要提升的操作,但任务本身未设置为提升运行。

【讨论】:

    【解决方案2】:

    IIRC,schtasks 不加载用户配置文件:很可能没有设置您需要的变量。 尝试使用cmd /K 在您的命令行(在/tr 之后)前面添加。这将使控制台保持活动状态。

    HTH

    【讨论】: