如果你已经熟悉基础的 CMD 定时关机,想进一步实现在每天晚上 11:30 自动关机,或根据任务状态动态决定是否关机,那么 PowerShell 将是你更强大的选择。
PowerShell 是 Windows 内置的高级脚本工具,不仅能调用系统命令,还能处理时间计算、条件判断和自动化流程。本文将教你如何用 PowerShell 实现灵活、精准的定时关机方案。
最简单的方式,就是在 PowerShell 里直接运行 CMD 的关机命令:shutdown /s /t 1800
该命令的效果与 CMD 完全一致,1800 秒(30 分钟)后关机。
假设你想让电脑每天晚上 11:30 自动关机,可以用以下 PowerShell 脚本:
# 设定目标关机时间(24小时制)
$targetTime = [datetime]"23:30:00"
$now = Get-Date
# 计算距离目标时间还有多少秒
$seconds = ($targetTime - $now).TotalSeconds
# 如果当前时间已过 23:30,则设定为明天同一时间
if ($seconds -lt 0) {
$seconds += 86400 # 加上一天的秒数(24*60*60)
}
# 执行关机命令
shutdown /s /t ([int]$seconds)
# 输出提示信息
Write-Host "✅ 电脑将在 $targetTime 自动关机。"
复制上述代码打开记事本,粘贴并保存为 AutoShutdown.ps1;右键该文件 → “使用 PowerShell 运行”。首次运行可能提示“脚本被阻止”,请以管理员身份打开 PowerShell,执行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
然后重试。
你可以将上述脚本与 Windows 任务计划程序 结合,实现每天自动运行关机脚本:
按 Win + R,输入 taskschd.msc 打开任务计划程序;创建基本任务 → 命名为“每日定时关机”;触发器设为“每天”,时间设为 23:25(比目标时间早几分钟);
操作选择“启动程序”,程序填 powershell.exe,参数填:-File "C:\路径\AutoShutdown.ps1",完成后,系统每天都会自动执行关机计划。
PowerShell 也支持更多系统控制命令:
立即重启:shutdown /r /t 0
注销当前用户:shutdown /l
仅取消关机:shutdown /a
注意:Stop-Computer 等原生 PowerShell 命令通常用于远程管理,本地使用反而更复杂,不推荐普通用户使用。
PowerShell 让定时关机从“固定延时”升级为“智能调度”。无论是指定时间点关机,还是结合任务计划实现自动化,它都能满足进阶用户的需求。掌握这一技能,你不仅能提升效率,还能深入理解 Windows 系统的自动化能力。