晚上要渲染一段视频,想让机器跑完自己关掉,同事给了句 shutdown -s -t 3600。
这是 Windows 自带命令,-s 关机,-t 后面跟秒数,3600 就是一小时后。执行完右下角会弹提示框,倒计时期间电脑照常能用。
几个常用参数
- -a:取消倒计时,改主意时第一时间敲这个。
- -f:强制关闭未保存的程序,不加的话有文档没存会卡住关不掉。
- -r:重启而不是关机,常和 -t 配着用。
- -h:休眠,和关机不是一回事,内存状态会写到硬盘。
时间单位只有秒,没有分钟参数。-t 0 是立即执行,省略 -t 也是立即。写个超大值会报参数超出范围。
计划任务里的坑
放进计划任务跑,要勾「使用最高权限运行」,否则普通权限下 -f 会失败。远程关机用 -m 指定目标主机,主机名前要加两个反斜杠,前提是对方开启了远程注册表服务、你有管理员凭据,防火墙也得放行。
还有一点:-t 的倒计时不会因为锁屏而暂停,但系统更新触发的重启会让它直接失效。设了 8 小时,中途装了个补丁重启,回来得重新敲一遍。真要做长定时,用任务计划程序指定时间点更稳。
到点了却没关
最常见是有程序拦着。没加 -f 时,Word 里有个未保存的文档就能让关机流程停在提示框上一直等,人不在旁边就一直耗着。加上 -f 会直接结束进程,代价是没保存的内容丢了。
还有一种容易忽略的:倒计时开始后才插入的移动硬盘,去掉时系统会弹「无法安全删除」,这也会把关机流程卡住。人不在现场就只能干等,所以这种场合加 -f 更实际。
另一种是快速启动。开着快速启动的机器,关机其实是混合关机,部分驱动状态被写进休眠文件,下次开机并不是真正的冷启动。需要彻底断电重启时,先在电源选项里关掉快速启动,再执行 shutdown /s /f /t 0。
脚本里怎么写
shutdown /s /f /t 3600 /c 「渲染完成后自动关机」/c 后面是提示语,超过 512 字符会被截断。PowerShell 里同样能用,参数照写,计划任务里要写成带完整路径的命令。
还有一个容易忽略的点:倒计时期间注销了用户,关机会继续,但弹窗看不到了。想临时叫停,得重新登录敲 shutdown /a。