一个晚上十点定时关机程序
方法1:考虑使用批处理文件,建立一个shut.bat文件,打开记事本编辑以下内容:
:loop
timeout 10
set hour=%time:~0,2%
if %hour% EQU 22 shutdown -s
goto :loop
关键语句shutdown -s,即刻关机命令,hour是一个变量,接收当前时间的小时数,至于if……EQU很好理解,如果hour等于22,即达到预设的关机时间,就执行关机命令。至于goto,就是条件不满足时一直循环往复。这个程序最大的痛点是可以看到一个窗口。为了隐藏这个窗口,再编辑一个shut.vbs文件,内容如下:
set ws=wscript.createobject("wscript.shell")
ws.run "shut.bat /start",0
wscript是一个脚本宿主文件,提供了解析以上语句的功能,也叫脚本解析引擎。这句话的意思就是说,创建一个脚本命令窗口,换句话说就好像是打开了命令提示窗口,等待命令的输入!
第二句就是运行前面说的那个批处理文件shut.bat,关键来了,后面那个0,是隐藏,如果为1,就是正常显示。
接下来,把shut.bat和shut.vbs放在同一目录,建立shut.vbs快捷方式,按下win+r组合键,输入shell:startup,打开启动目录,把shut.vbs快捷方式拖进去就OK了。
要注意的是,shut.bat不能取名shutdown.bat,否则就会不断调用自身,陷入无限循环。
方法2:使用python或其他语言,有点小题大做哈。
# -*- coding: utf-8 -*-
import time
import os
ticks = time.time()
while 1:
t = time.ctime(ticks)
tt = t[-12:-14:-1]
if tt == "22":
# 晚上22点关机
os.system('shutdown -s')
break
time.sleep(60)