如何通过Shell脚本在Windows 10中定时触发「仅闹钟」专注模式?
如何通过Shell脚本在Windows 10中定时触发「仅闹钟」专注模式?
嗨,我刚好折腾过这个需求,其实完全可以实现,而且配置起来没你想象的那么麻烦!下面分两步给你讲清楚怎么操作:
第一步:写个PowerShell脚本触发「仅闹钟」模式
Windows的专注助手(也就是你说的「仅闹钟」模式)可以通过修改注册表快速切换,我们用PowerShell来实现这个操作:
- 打开记事本,把下面的代码复制进去:
# 设置「仅闹钟」模式(值2对应仅闹钟,0是关闭,1是仅优先级) Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\FocusAssist\Configuration" -Name "FocusAssistMode" -Value 2 # 强制系统刷新设置(可选,确保立即生效) $null = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier().Show([Windows.UI.Notifications.ToastNotification]::new([Windows.Data.Xml.Dom.XmlDocument]::new()))
- 保存文件,命名为
EnableFocusAssistAlarmsOnly.ps1,比如存到C:\Scripts文件夹里(如果没有这个文件夹就新建一个)。
第二步:用任务计划程序设置定时触发
接下来要让这个脚本每天按你想要的间隔自动运行,Windows自带的任务计划程序就能搞定:
- 按下Win+R,输入
taskschd.msc打开任务计划程序。 - 点击右侧的「创建基本任务」,跟着向导走:
- 给任务起个名字,比如「定时触发仅闹钟专注模式」,然后点下一步。
- 触发器选「每天」,设置你想要的开始时间,然后点下一步。
- 选择「重复任务间隔」,比如你想每2小时触发一次,就选2小时,持续时间选「24小时」,然后点下一步。
- 操作选「启动程序」,然后点下一步。
- 程序或脚本里填
powershell.exe,添加参数里填-ExecutionPolicy Bypass -File "C:\Scripts\EnableFocusAssistAlarmsOnly.ps1"(注意替换成你实际的脚本路径),然后点下一步。 - 最后勾选「当单击完成时,打开此任务属性的对话框」,点完成。
- 在属性对话框里,切换到「设置」标签,勾选「如果任务失败,每隔X分钟重试」(可选,确保稳定性),然后确定就大功告成了!
如果之后想要关闭这个模式,你可以写另一个脚本把Value改成0,同样用任务计划程序定时触发就行。
备注:内容来源于stack exchange,提问作者Yedya




