无人小站

使用任务计划程序定时运行程序

JP-Liu 任务计划程序AutoHotkeyClash

使用任务计划程序定时运行程序

本文写于 2020-03-21,文中的提到的 ClashWeb 和 Clash for Windows 均不提供链接。

2020-03-22 更新,今天遇上一次更新失败,补充一个备份功能,更新失败时自动调用备份。

近期从 Clash for Windows 切换到 ClashWeb 的过程中遇到了一个问题,在 Clash for Windows 中的订阅可以配置定时更新,但在 ClashWeb 中貌似无法实现,近期服务商频繁更换线路,所以只好把 Windows 中的任务计划程序拉出来实现定时更新了。

在 ClashWeb.ahk 中看到涉及到订阅更新的就是两行:

RunWait, ahkupdateconfig.bat,,Hide
RunWait, ahkrestartclash.bat,,Hide

于是新建一个 AutoUpdate.ahk (运行时需要 Autohotkey Github)内容如下:

; ClashWeb 的路径
ClashWebPath=D:\1-Program\CrossWall\ClashWeb\
; 需要更新的配置文件的名称
ProfileName=CordCloud
; 配置文件的大小限制,单位是 K(用于判断是否更新是否失败,小于此大小判定为更新失败,继续使用更新前的备份)
ProfileSizeLimit=100

ClashWebProfile=%ClashWebPath%\Profile
FileCopy, %ClashWebProfile%\%ProfileName%.yaml, %ClashWebProfile%\%ProfileName%.yaml.bak, 1

SetWorkingDir, %ClashWebPath%
RunWait, ahkupdateconfig.bat,,Hide

FileGetSize, YAMLSize , %ClashWebProfile%\%ProfileName%.yaml, K
IF (YAMLSize < ProfileSizeLimit)
FileCopy, %ClashWebProfile%\%ProfileName%.yaml.bak, %ClashWebProfile%\%ProfileName%.yaml, 1

RunWait, ahkrestartclash.bat,,Hide
Exitapp

然后打开任务计划程序,选择右方的创建任务,在弹出的窗口中对计划任务进行编辑:

TaskSchedulerAutoUpdate


常规

  • 名称随意填,其他项可以都不动。

触发器

  • 我配置的是每天12点,每隔1天发生一次,重复任务间隔5小时,持续时间无限期,其他项不动。

操作

  • 启动程序,程序路径填写 Autohotkey.exe 的路径,如:D:\1-Program\AutoHotkey\AutoHotkeyA32.exe
  • 参数填写 上面新建的 AutoUpdate.ahk 的路径,如:D:\1-Program\CrossWall\ClashWeb\Profile\AutoUpdate.ahk

条件

  • 我勾选了 只有在以下网络连接可用时才启动 ,连接选的是任何连接。

设置

  • 我勾选了 允许按需运行任务如果过了计划开始时间,立即启动任务如果请求后任务还在运行,强行将其停止 三项。

之后保存即可,选中新建的任务,点击右方的 运行 即可,如有需要,也可以 导出

JP-Liu
懒人一个