3 个例子告诉你 Windows 的这个「隐藏功能」有多好用

2021-05-20 19:50:52 3点赞 14收藏 0评论

正如快捷指令,Tasker 之于手机端,Windows 上的任务计划程序也能够让不同软件协同工作,方便地完成各种具有固定流程的任务。本文将用三个简单例子阐释如何使用任务计划程序创建在固定时间运行的任务、周期循环的任务以及随事件触发的任务。任务计划程序本身并非实现自动化任务唯一要点,在脚本中使用合适的命令行工具有时候更加重要,因此,文中的每一节内容将包括脚本编写和任务计划程序配置两个方面。

想要任务计划程序正确工作须确保 Task Scheduler 服务的启动类型为「自动」。示例脚本运行环境为 Windows 10 和 PowerShell 7.1,不保证适用于低版本的 Windows。

定时任务:Windows 深色 / 浅色模式切换

强光下将系统和程序切换为浅色模式让显示更清晰,暗光下将系统和程序切换成深色减少对眼睛的刺激。实现以上效果的思路是在一天早晨和晚上的固定时间执行一系列固定任务。

切换系统和程序的深/浅模式需要完成三个步骤:切换系统显示模式,更换壁纸,切换不跟随系统样式的应用程序的显示模式。

切换系统显示模式可以用命令行修改注册表。位于 HKCUSOFTWAREMicrosoftWindowsCurrentVersionThemesPersonalize 的 AppsUseLightTheme 以及 SystemUsesLightTheme 的值为 0 时是深色模式,为 1 时为浅色模式。

更改 Windows 壁纸则有打包好的 Wallpaper-CLI 程序,安装 Node.js 后输入「npm install --global wallpaper-cli」安装此应用。之后,使用「wallpaper [imagepath]」就能更换壁纸。

3 个例子告诉你 Windows 的这个「隐藏功能」有多好用

像 Windows Terminal、Rime 这类应用程序的配色由自己独立的配置文件控制,我们需要找到并修改它们的配置文件。以 Rime 输入法为例,修改 weasel.custom.yaml 文件的「style/color_scheme」值,并重新部署即可切换皮肤。我们既可以使用「-replace」的方式,也可以准备两份配置文件用「Copy-Item」覆盖掉原文件。

综上所述,创建名为 Toggle-Night.ps1 的文件以切换深色模式,写入如下命令。

3 个例子告诉你 Windows 的这个「隐藏功能」有多好用

脚本编写完成后,进入任务计划程序,创建名为「深色模式」的任务,浅色模式同理:

  • 新建触发器。选择「按预定计划」,在开始一栏中写入我们希望系统切换为深色模式的时间。勾选「每天」,设置每隔「1」天发生一次,注意不要勾选「重复任务间隔」。

  • 新建操作。选择「启动程序」,在「程序和脚本」栏中写入「pwsh.exe」,「添加参数」中写入「-nop -w hidden -file "D:...Toggle-Night.ps1"」。「-w hidden」会让脚本执行时终端只闪烁出现一次立刻消失。如果使用默认的 PowerShell 5 的话,需将「pwsh.exe」改为「powershell.exe」。

  • 不要勾选「条件」栏中的「只有计算机使用交流电源时才启动此任务」。在「设置」栏中,勾选「允许按需运行任务」和「如果过了计划时间,立即启动任务」。这样错过设定的时间时任务也会运行。

3 个例子告诉你 Windows 的这个「隐藏功能」有多好用

我们可以考虑将一些需要定时运行的任务都写入 Toggle-Night.ps1 中,不必为他们单独创建任务。例如我就将 Rime 输入法的词库同步、Chocolatey 升级添加进了脚本。

周期任务:备份频繁变动的文件

Word 等现代编辑器有每隔一定时间备份正在编辑的文件的功能,我们希望能够使用脚本实现类似的效果,备份诸如游戏本地存档、笔记等频繁变动的文件,方便回溯历史。不同于间隔时间很长的定时任务,这类脚本重复的间隔需要是几小时乃至几分钟。

比如,D 盘有一个 Obsidian 的笔记库 Note 文件夹,需要每 1 小时为它创建一次备份。文件夹中是数百个 KB 大小的 Markdown 文件,通过复制「Copy-Item」到其他文件夹的方式备份会产生大量小文件,不方便管理。

因此,我们考虑使用 7zip 的命令行工具 7z。使用 7z 将所有文件以压缩包的形式备份到 OneDrive 内,并排除 .obsidian 等基本不变的文件夹,其命令为「7z a "$env:OneDrive/Data/Note/Obsidian.zip" "D:/Note/*" -xr!'.obsidian'」。

当然,我们不能让备份文件一直这样累加上去,需要配以清理命令——当备份文件到达一定数目时,删除最老的备份。最终的脚本 Backup-Note.ps1 如下。

3 个例子告诉你 Windows 的这个「隐藏功能」有多好用然而不同于第一节中的定时任务,如果还使用「pwsh.exe -w hidden」的方式来隐藏终端的话,我们将会每 1 小时看到终端闪烁一下,体验可想可知。为了彻底隐藏脚本执行时的终端窗口,一个思路是使用 JS 脚本来执行 PowerShell 脚本 —— 创建文件 Backup-Note.js,写入var wshShell = new ActiveXObject("WScript.Shell");

wshShell.Run('pwsh.exe -nop -File "D:/.../Backup-Note.ps1"', 0, false);

双击该 JS 脚本绑定 wscript 的打开方式,可以看到执行时不会有任何窗口。

接下来在任务计划程序中创建名为「备份 Note」的任务:

  • 新建触发器,选择「按预定计划」,将开始栏的数值调整为过去的任意时间,并勾选「重复任务间隔」,数值设置为「1 小时」,持续时间为「无限期」;

  • 新建操作,选择「启动程序」,在程序和脚本栏中写入 Backup-Note.js 的路径;

  • 其他设置参考第一节。

3 个例子告诉你 Windows 的这个「隐藏功能」有多好用

事件任务:网络状态更改时,启停应用

任务计划程序提供了诸如「登录时」、「空闲状态」等常见的事件,可以用于配置开机自启软件等任务,这些任务配置起来相对简单。下面展示复杂一点的,需要配合 Windows 事件日志设置的任务 —— 网络状态更改时,启动/停止某程序。

诸如公司代理等软件,只有在连接网络时运行才有意义。在 PowerShell 中启停应用比较简单,「Start-Process」和「Stop-Process」就能做到。比较麻烦的是找出网络状态更改时的事件日志。

通过搜索打开 Windows 事件查看器,定位到应用程序和服务日志 - Microsoft - Windows - NetworkProfile - Operational,窗口右侧会显示出所有已经记录的日志。为了准确地找到网络状态更改时产生的日志,首先选择「清除日志」,然后手动断开网络再连接,这时候刷新事件查看器,会多出几行网络日志。

3 个例子告诉你 Windows 的这个「隐藏功能」有多好用

查看这些多出来的日志,可以发现连接网络时会产生一个 ID 为 10000 的日志,断开网络时会生成 ID 为 10001 的日志。

创建名为「启动代理软件」的任务,「停止软件」任务的配置同理:

  • 新建触发器,选择「发生事件时」,在下拉菜单中找到 Microsoft-Windows-NetworkProfile/Operational,选择源为 NetworkProfile,填写事件 ID 为上面我们记录的 10000;

3 个例子告诉你 Windows 的这个「隐藏功能」有多好用

  • 新建操作,选择启动程序,填入代理软件的路径;

  • 在设置栏中,勾选「如果任务失败,按以下频率重新启动」。不要勾选「如果任务运行时间超过……」一项,因为在这个任务中,只要网络是连接状态,程序会一直保持「正在运行」状态。其他设置随意。

展开 收起

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

268元起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

106元起

WPS 金山软件 WPS 超级会员 3年卡

WPS 金山软件 WPS 超级会员 3年卡

308元起

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

299元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

189元起

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

788元起

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

暂无报价

WPS 金山软件 会员季卡

WPS 金山软件 会员季卡

59.85元起

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

1288元起

Microsoft 微软 office365家庭版15个月 203元

Microsoft 微软 office365家庭版15个月 203元

203元起

WPS稻壳会员1年套餐PPT模板素材字体美化图标思维导图官方正版

WPS稻壳会员1年套餐PPT模板素材字体美化图标思维导图官方正版

暂无报价

WPS超级会员2年pdf转word官方正版思维导图排版简历模板赠AI会员

WPS超级会员2年pdf转word官方正版思维导图排版简历模板赠AI会员

218.5元起

SANGFOR 深信服科技 AF-1000-SK1505A 边界安全防护系统软件V8.0

SANGFOR 深信服科技 AF-1000-SK1505A 边界安全防护系统软件V8.0

67980元起

SANGFOR 深信服科技 深信服EDR-33 终端安全管理系统

SANGFOR 深信服科技 深信服EDR-33 终端安全管理系统

40000元起

SANGFOR 深信服科技 深信服防火墙AF-1000-B1120--K3

SANGFOR 深信服科技 深信服防火墙AF-1000-B1120--K3

50000元起

SANGFOR 深信服科技 aTrust-1000-GA160M 零信任综合网关设备

SANGFOR 深信服科技 aTrust-1000-GA160M 零信任综合网关设备

298000元起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
14
扫一下,分享更方便,购买更轻松