今天聊一聊其他的。我时不时的有一个需求,是关于在windows电脑上定时关机。
不知道怎么地,我好几次都忘了这个自动定时关机的终端命令,于是每一次都要去网上查。
1.鼠标右击【开始菜单】选择【运行】或在键盘上按【 Win+R】快捷键打开运行窗口。
2.输入shutdown -s -t 3000 后点击【确定】。
这里的3000是指,在3000秒后自动关机。
且不说我忘记这个命令好几次,在每次我输入这个命令,总在纠结大概是多少秒后关机,我一般是心理预算多少分钟后自动关机,先心算分转秒,然后再填写命令中的数字。
不如我直接写一个程序,我就是要输入分钟数,然后自动关机。
代码及讲解
代码很简单,其实也是在调用shutdown -s -t 3000这个命令,只是3000这个由用户(即我)自定义输入,输入的是分钟,在代码自动转为秒数。
新建一个叫做 “关机.py”的文件,在文件中编写代码:
import sys, os, time
minutes = sys.argv[1]
t2 = int(float(minutes)* 60)
os.system('shutdown -s -f -t %d'%(t2))
for i in range(t2):
print("在{}秒后自动关机".format(t2-i), end="\r")
time.sleep(1)
我们逐行讲解下代码:
第一行,导入sys, os, time这三个包。
第二行,借用sys获取命令行的参数,即用户输入的分钟数。
第三行,用户输入的分钟数乘以60,得到秒数。
第四行,借用os库,执行自动关机命令,此时开始倒数计时。
第五行至第七行,借用for循环,每一秒休眠一次,打印一个字符串,实现自动关机提示功能。
程序打包及使用说明
程序打包我们使用nuitka,命令如下:
nuitka --mingw64 --show-progress --standalone --plugin-enable=numpy --onefile --windows-icon-from-ico=logo.png --remove-output 关机.py
此时还没完,因为还要设置环境变量。
现有两种方法,
1把关机.exe复制粘贴到 已经在系统环境变量的文件夹下。
2把关机.exe所在的文件夹设置为系统环境变量。
我讲一下方法1的具体操作。
复制关机.exe,粘贴到C:\Windows\System32
这个C:\Windows\System32绝对已添加在系统环境变量中。
如果你觉得不稳妥,那就用方法2,具体操作请百度。
以上这个方法,我们可以套用在其他的任意的exe文件中,比如,如果你安装了python,那么你在终端输入python这几个字母,那么电脑回自动去遍历环境变量下的文件是否存在python.exe,若存在则运行。
我以前希望把常用的exe的路径添加到环境变量中,这样方便我打开。比如把微信的目录添加到环境变量,我们不使用鼠标点击微信图标,在命令行输入wechat就能打开微信。这个方法适用于其他window电脑上的EXE文件。
好了,假设我完成了所有步骤,这时需要在终端输入:
关机 1
这个命令代表,这个电脑在1分钟后关机。这里的数字1可以改成其他数字n,表示在n分钟后电脑关机。
我做了个动态图,如下:
笑死个人,为了做上面的gif,我在还有39秒的时候,主动按ctrl+c。以为打断了是施法,忘了shutdown命令还在继续执行。我打断是 关机.exe的程序,但是shutdown的程序没被打断...
以上这段话是在电脑关机后再开机写的,自己坑了自己一下...
如果你要取消自动倒计时关机,请在命令行输入:
shutdown -a
这样才能取消自动倒计时关机。
今天先暂时到这里了,下次再继续。