前言

学校周五周六不停电不断网,其余时间23点断电24点断网。平日里我的笔记电脑不仅充当游戏机,还要承担Wi-Fi这项重大任务。前几日突发奇想,能否像Linux这样创建计划任务,让电脑在23点-24点继续为我提供Wi-Fi,且若24点我仍在使用电脑,需要给我选择是否关机

想法成立,但实现不简单。Windows的计划任务和CMD功能不齐全,网上的教程要么每次自动关机需要手动提前打开,要么每次自动关机没有选择直接关闭,或是需要下载第三方软件,这我可不乐意

这是Windows第一次让我明白Linux适合做服务器系统的原因,一个简单的计划功能在Win这边竟如此残缺。幸好有个PowerShell,结合Win自带的计划任务轻松实现带选择框的自动关机


开始整活

一、打开”PowerShell ISE”,输入如下代码并保存脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
## 结合计划任务在每日0点自动打开此脚本,弹出提示框,点击确定-60秒后关机;点击取消-取消关机;不选择-61秒后关机

# 引入选择框
$ws = New-Object -ComObject WScript.Shell

# 创建选择框 $wsr = $ws.popup("内容",自动关闭时间,"标题",1 + 64)
$wsr = $ws.popup("是否自动关机?",60,"提示",1 + 64)

# 选择语句 1确定-60秒后关机 2取消-取消关机 3自动关闭-1秒内关机
switch($wsr)
{
1{shutdown -s -t 60}
2{shutdown -a}
-1{shutdown -s -t 1}
}



二、打开”计划任务”,如下图”创建任务”



三、按下图设置任务

默认,或按图设置
新建触发器,按需设置
新建操作,程序或操作填'powershell',参数填刚刚脚本的路径
因为23点断电,所以需要设置电源
默认

四、以上即是全部操作,试运行一遍

找到任务,右键'运行'
成功!

五、以防万一可以改一下触发器时间,查看是否能自动运行


小贴士

因为选择框会阻塞程序,所以第三步的设置中,如果选择”不管用户是否登录都要运行”,这个PowerShell脚本会在后台运行,不会跳出选择界面