个人资料
正文

与熊孩子斗法,在WINDOWS中利用脚本实现定时自动关机

(2020-04-16 22:05:39) 下一个

与熊孩子斗法,在WINDOWS中利用脚本实现定时自动关机

现在这段时间小朋友都不用上学,所以他们只能窝在家里了。在家里怎么办,只能打游戏啊,现在打游戏打得天昏地暗。没日没夜有的时候打到半夜12点还不关机。我实在是受不了。

那么我想到一个能不能设置一个自动关机呢?回忆了一下我们很早时候学过的DOS的脚本程序我估计网络上也有很多,我懒得去找我就现在自己开动脑筋写一个看一下效果怎么样。

其实现在小朋友玩手机平板玩电脑都比大人厉害多了,大人想管他们的实在在是心有余而力不足。如果他们用的pc上面的视频游戏都是基于windows的。还可以发挥一下我们的优势可以跟他们斗一斗

那么这个方法来有几个前提条件

第一就是你首先大人要有管理员的账号而小孩的账号一定要是普通用户,或者即使不是普通用户也要是不能在管理员成员里面。

第二个前提条件呢就是你要懂得如何设置计划任务也就是你一旦有了这个脚本程序你可以把它利用计划任务按你的需求让他运行。我问你不会的话呢可以参照一下这个视频里面演示了一下如何设置计划任务。如果你已经会了可以跳过这一节

第三个前提条件你要懂得如何编辑保存脚本文件。下面这个视频的演示了一下如何编辑保存脚本文件。如果你已经会了可以跳过。

 

最后呢我们就来分析一下我们希望得到的脚本。

我们知道windows里面它有一个命令可以实现关机的他就是叫做shutdown好那么这个命令配合几个参数来我们就可以实现关机。

 

 

如果你打开你的命令行窗口试一下这个命令你就知道它是可以实现关机。

所以最简单的一个脚本就是把这个命令写进去,然后利用前面的学到的计划任务在特定的时间比如说晚上10点钟让他自动运行,那么就可以实现关机了。

但是这里面有一个问题比如说10点钟之前大人都去睡觉去了,那你这个脚本自动关机了以后,熊孩子又把它开机怎么办呢?所以这样定时关机还是不够的。我们还希望实现的是如果他们在特定的时间里重新开机的话,我们这个脚本也要再运行一次把机器关掉,那么这个就带来了一定的复杂性了。所以我们的脚本里面有一个对时间的判断也就是说如果时间,是在我们指定的范围内他就运行关机,如果不在我们指定的范围内就跳过关机。那么脚本里面有这个判断以后呢我们就可以利用计划任务创建第二个任务。第二个任务就是在每次机器开机运行时执行这个脚本。那这样的话呢,如果他重新开机的话就会脚本就会在机器关上。

附完整脚本,请将其粘贴到写字板中,再保存为.bat文件(注意,保存是文件类型要选择*.*)

-----------从下一行开始复制
::自动关机脚本。在晚上10pm-2am之间触发运行后会延时2分钟自动关机
::最后更新2020-04-20
@echo off
set hour=%time:~0,3%
echo %hour% | find "22:"
if NOT ERRORLEVEL 1 goto startshutdown
echo %hour% | find "23:"
if NOT ERRORLEVEL 1 goto startshutdown
echo %hour% | find "00:"
if NOT ERRORLEVEL 1 goto startshutdown
goto end
:startshutdown
shutdown /s /t 120
:message
msg * Your screen time is out. Keep Healthy. Please turn off your computer.
:end
---------复制到上一行为止

最后来讨论一下这个脚本的缺点

第一不是很灵活。也就是说如果你要改变这个时间的话你还到每一台电脑里面去更改脚本,所以比较理想的方法是,如果有一个小程序能够运行在手机端通过手机来更改开机关机的时间那就比较理想了。这个任务就留给坛子里的高手来发挥了。

第二个那这个脚本如果是电脑的时间不对的话可能也会出现问题。也就是说如果在开机之前进入到bios里面更改了时间的话那就是实现了所谓的破解了

第三个就是如果管理员的权限被获取了那么他是可以到计划任务里面将所有的计划任务给禁止掉,我现在还没有很好的方法隐藏那些任务。

第四就是界面不友好要更改时间还要到脚本里面去更改,这对于大部份的家长来说是个挑战。不知道有没有高手可以写一个图形化界面自动生成脚本和任务

[ 打印 ]
阅读 ()评论 (0)
评论
目前还没有任何评论
登录后才可评论.