|
用系统自带指令实现 Windows XP/2003 定时自动关机今天在海浩的QQ群里聊的时候,有人问到如何实现定时自动关机,E版给出了用at和shutdown指令实现的方法,我自己常用的是PowerOff软件来实现,试了下at指令,发现还是挺方便的。
先说下系统自带的关机指令,很多人应该已经知道了,就是shutdown,不带参数执行将会列出它的参数,常用参数为:
/s 关闭计算机
/r 关闭并重启动计算机
/f 强制正在运行的应用程序关闭而不事先警告用户
/t xxx 设置关闭前的超时为 xxx 秒。
有效范围是 0-600,默认为 30
另外,在倒计时过程输入shutdown /a可以取消关机或重启,不加/t参数执行则倒计时30秒。
一般需要立即关机可以这样写:(将/s参数换成/r参数就是立即重启)
shutdown /f /s /t 0
shutdown支持对远程计算机进行操作,需要使用/m参数,如:
shutdown /f /s /m \\test
在30秒后强制将局域网中名为test的计算机关闭
再说下at指令,它的作用是计划在指定时间和日期在计算机上运行命令和程序。在命令行下输入at /?将列出它的帮助信息,在“帮助和支持中心”里有更详细的解释及示例。
假设想实现晚上23:30自动关机,可以这么写:
at 23:30 shutdown /f /s /t 0
成功的话会有类似这样的信息回应:新加了一项作业,其作业 ID = 1
要取消这个定时关机的话,有两种方法
方法一、命令行
不带任何参数执行at,将会列出已经设定的内容,记下状态ID号,比如本例为1,然后输入:
at 1 /delete
也可以简写为:
at 1 /d
不加序列号使用/d参数将会删除所有设定的内容,如果想不经确认删除所有设定的内容,可用:at /d /y
方法二、任务计划
用at指令设定的定时执行指令可在“控制面板”的“任务计划”中看到,要取消的话删除就行了。
如果你只是临时用用,比如只是当天需要定时自动关机,用上述指令就行了。如果需要在一个月中的某几天或每周一甚至是每天执行,就需要再加点参数,仍然举例说明。
例1、每月的1、5、10、15、20号的0点自动关机
at 00:00 /every:1,5,10,15,20 shutdown /f /s /t 0
例2:每周一的23:00自动关机
at 23:00 /every:Monday shutdown /f /s /t 0
例3:每天22:00自动关机
at 22:00 /every:Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday shutdown /f /s /t 0
即使用every参数,例3中的每天自动关机可以简写为:
at 22:00 /every:Su,M,T,W,Th,F,Sa shutdown /f /s /t 0
最后解释一下本贴标题为何要注明XP/2003,Windows 2000是不自带shutdown指令的(当然从XP/2003系统里复制一个过去也能用),我的机器上也没装Windows 2000,不知道在2000里是否自带at指令。
另,用at指令而不是在任务计划里添加是因为用at指令添加的任务是以系统最高的SYSTEM权限来执行的,不登录也会生效,而在任务计划里添加的任务需要指定管理员帐号密码才能做到不登录也生效,at指令还能用\\computername指定在局域网里的其它计算机上建立自动执行的任务计划,当然前提条件是你有对方机器的管理员帐号和密码。
补充二点:
1、用以上命令,并命令执行时,系统进入关机倒计时。这时,如果正在工作,不需要关机,那马上在倒计时设置时间内运行“shutdown.exe -a”中止关机命令。也可以建立一个这个命令的快捷方式在桌面上,方便使用。
2、拷贝Shutdown.exe到2000系统下AT命令完全可以使用,包括Win2000、Win2000Server。 |
|