Windows平台下使用vbs脚本实现自动关机

一般情况下,在Windows系统下我们会打开cmd或者是使用powershell(脚本命令:shutdown -s -t 从现在到预定关机时间的秒数)来实现自动关机。

但更多时候,我们希望免干预,系统自动按照自己预置的时间关机,如每天固定下午6点下班,系统自动关机,无需人为干预。

要实现以上目的,我们需要两个步骤:1)编写关机的脚本,本质还是执行shutdown命令,只不过这里执行关机脚本的时候由系统自动计算当前到预定关机时间的秒数;2)将关机脚本加入到任务计划程序中,设置为开机时自动执行关机脚本。

做完以上两个步骤,就可以实现免干预自动关机了。这里之所以选择使用vbs脚本而不是其他语言脚本,是因为windows平台自带vbs运行环境,不需要预装其他的软件工具。

操作步骤如下:

在Windows平台下新建文件,后缀名为vbs(例:shutdown.vbs),拷贝以下脚本后保存。

' 脚本作用:实现自动关机

Option Explicit
On Error Resume Next

' 获取当前到指定关机时间之间的秒数
Function GetSeconds(EndTime)

	GetSeconds=DateDiff("s",Time,EndTime)

End Function

' 创建一个对象用于调用Windows的关机API
Dim ObjShell,Seconds
Dim EndTime
' 设置关机时间为晚上6:00
EndTime=#18:00:00#
' 手动指定关机时间,输入格式:18:00:00
' EndTime=CDate(InputBox("请输入关机时间:"))
Set ObjShell = WScript.CreateObject("WScript.Shell")
Seconds=GetSeconds(EndTime) 
' 调用shutdown命令,并设置自动关机
ObjShell.Run "shutdown -s -t " & Seconds, 0, True
 
' 清理对象
Set ObjShell = Nothing



If Err Then
    ' 如果有错误,输出错误信息
    WScript.Echo "发生错误: " & Err.Description
    WScript.Echo "错误号: " & Err.Number
    Err.Clear ' 清除错误信息,以防止影响后续代码
' Else
	' MsgBox("自动关机命令执行成功")
End If

打开“开始”菜单,搜索并打开任务计划程序,然后点击“新建任务”:

参考以下截图设置:

常规设置:

触发器设置:

操作设置:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值