在过去的两天内,我一直在努力使调度程序正常工作。我正在尝试使用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 Task Scheduler每20分钟运行一次时,它不会运行。但是,即使在Scheduler中,如果我双击并手动运行它也可以正常工作。我什至尝试将批处理文件转换为.exe,但在那里遇到相同的问题。
Windows Task Scheduler设置为-
程序/脚本:/Directory/sync_winscp.bat参数:开始于:/目录
并且对于.exe文件也类似
程序/脚本:/Directory/sync_winscp.exe参数:开始于:
我也尝试过-
程序/脚本:... / Win32 / cmd.exe参数:/Directory/sync_winscp.bat开始于:
它以最高特权运行,并且没有超时。
更新:我还有另一个.bat文件来调用python并每天运行一个脚本,该脚本运行得很好。
编辑任务并切换到“触发器”选项卡。在列表中选择指定的触发器,然后单击“编辑”按钮。确保以下所有内容均正确:
完全单击确定以激活任务,然后在下一次运行时进行验证。以上所有设置都很重要,但是关键是,直到首先触发任务,任务才会运行。换句话说,它将仅在触发后按计划运行。这就是为什么开始时间必须设置为将来的原因。