【问题标题】:Windows Task Scheduler runs manually, fails in schedulerWindows 任务计划程序手动运行,计划程序失败
【发布时间】:2017-04-11 20:14:44
【问题描述】:

过去两天我一直在尝试让调度程序工作。 我正在尝试使用 WinSCP 从远程服务器同步文件夹,但是我不想让 WinSCP 连续运行,因此我使用批处理文件运行它。批处理文件如下。

"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
  /log="WinSCP_log.log" /ini=nul ^
  /command ^
    "open sftp://xxxxxxxxxxxxxxxxx -hostkey=""xxxxxxxxxxxxxxxxxxxxx""" ^
    "cd /data/remotexxxxxx" ^
    "lcd C:\localxxxxx" ^
    "synchronize local" ^

当我只运行批处理文件时它运行良好。当使用 Windows 任务计划程序每 20 分钟运行一次时,它不会运行。但是,即使在调度程序中,如果我双击并手动运行它也可以正常工作。我什至尝试将批处理文件转换为 .exe,但在那里遇到了同样的问题。

Windows 任务计划程序设置为 -

程序/脚本:/Directory/sync_winscp.bat 参数:开始于: /目录

对于 .exe 文件也是如此

程序/脚本:/Directory/sync_winscp.exe 参数:开始于:

我也试过了-

程序/脚本:.../Win32/cmd.exe 参数: /Directory/sync_winscp.bat 开始于:

它以最高权限运行,没有超时。

更新: 我还有另一个 .bat 文件来调用 python 并每天运行一个运行良好的脚本。

【问题讨论】:

  • 提供所有相关文件和目录的完整路径!计划任务是否在用户上下文下运行?
  • 在调度器中,所有的路径都已作为完整地址输入。我不确定您所说的用户上下文是什么意思。
  • 我在说是否勾选了“用户登录时运行脚本”复选框...
  • 不,它说无论用户是否登录都运行。

标签: windows batch-file cmd scheduler


【解决方案1】:

编辑任务并切换到触发器选项卡。 在列表中选择指定的触发器,然后单击编辑按钮。 确保以下所有内容均属实:

  1. “开始任务”选项设置为“按计划”值。
  2. 开始日期是今天,时间比现在晚几分钟。
  3. “已启用”复选框已选中。

一直点击确定激活任务,然后在下次运行时验证。 上述所有设置都很重要,但这里的关键是,任务在首先被触发之前不会运行。换句话说,它只有在被触发后才会按计划运行。这就是为什么必须将开始时间设置为稍微晚一点的原因。

【讨论】:

    最近更新 更多