使用任务计划程序定时运行程序
使用任务计划程序定时运行程序
本文写于 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
然后打开任务计划程序,选择右方的创建任务,在弹出的窗口中对计划任务进行编辑:
常规
- 名称随意填,其他项可以都不动。
触发器
- 我配置的是每天12点,每隔1天发生一次,重复任务间隔5小时,持续时间无限期,其他项不动。
操作
- 启动程序,程序路径填写 Autohotkey.exe 的路径,如:
D:\1-Program\AutoHotkey\AutoHotkeyA32.exe
- 参数填写 上面新建的 AutoUpdate.ahk 的路径,如:
D:\1-Program\CrossWall\ClashWeb\Profile\AutoUpdate.ahk
。
条件
- 我勾选了 只有在以下网络连接可用时才启动 ,连接选的是任何连接。
设置
- 我勾选了 允许按需运行任务,如果过了计划开始时间,立即启动任务,如果请求后任务还在运行,强行将其停止 三项。
之后保存即可,选中新建的任务,点击右方的 运行 即可,如有需要,也可以 导出。