windows电脑定时关机

今天聊一聊其他的。我时不时的有一个需求,是关于在windows电脑上定时关机。

不知道怎么地,我好几次都忘了这个自动定时关机的终端命令,于是每一次都要去网上查。

image-20240901005559825

1.鼠标右击【开始菜单】选择【运行】或在键盘上按【 Win+R】快捷键打开运行窗口。

2.输入shutdown -s -t 1200 后点击【确定】。

1.鼠标右击【开始菜单】选择【运行】或在键盘上按【 Win+R】快捷键打开运行窗口。

2.输入shutdown -s -t 3000 后点击【确定】。

img

这里的3000是指,在3000秒后自动关机。

且不说我忘记这个命令好几次,在每次我输入这个命令,总在纠结大概是多少秒后关机,我一般是心理预算多少分钟后自动关机,先心算分转秒,然后再填写命令中的数字。

不如我直接写一个程序,我就是要输入分钟数,然后自动关机。

代码及讲解

代码很简单,其实也是在调用shutdown -s -t 3000这个命令,只是3000这个由用户(即我)自定义输入,输入的是分钟,在代码自动转为秒数。

新建一个叫做 “关机.py”的文件,在文件中编写代码:

import sys, os, timeminutes  = 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

img

此时还没完,因为还要设置环境变量。

现有两种方法,

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

这样才能取消自动倒计时关机。

今天先暂时到这里了,下次再继续。