电脑自动关机bat 编写

电脑自动关机bat 编写,第1张

虽然大家学过了一些Windows的命令,但用批处理来与用户交互并实现自动关机可能还没有试过吧.自己做一个关机程序,感觉可不一样,分享了电脑自动关�œ.bat 编写代码,一起来看看吧!

   第一步:

打开记事本,输入下面的文字(以rem开头的语句是注释,可以不必输入).

复制代码 代码如下:

@echo off

title系统关机akiecarry

:loop

cls

color bc

echo.

echo.

echo *** WINDOWSXP 快速关机系统 ***

echo.

echo 快速关机……………………请直接回车

echo 开始倒计时关机……………请输入1+回车

echo 设定时间点关机……………请输入2+回车

echo 显示计时关机………………请输入3+回车

echo 设定每天关机………………请输入4+回车

echo 取消系统关机………………请输入5+回车

echo 退出…………………………请输入6+回车

echo.

echo.

set a=

set /p a= 【 请输入 】:

if "%a%"=="1" goto aaa

if "%a%"=="2" goto bbb

if "%a%"==" " goto ccc

if "%a%"=="" goto ddd

if "%a%"=="3" goto eee

if "%a%"=="4" goto fff

if "%a%"=="q" exit

goto loop

:ddd

@echo off

color e5

cls

echo.

echo.

echo 〖系统即将关机并结束进程〗

pause

echo.

::ntsd -c q -pn %run%

taskkill /f /t /im pfw.exe /f /t /im internat.exe /f /t /im explorer.exe

shutdown -s -f -t 0 -c "取消请运行shutdown -a"

exit

:aaa

@echo off

color f4

echo.

echo.

echo.

echo 现在将设置系统自动关机,请在此输入倒计时秒数后回车,系统将在设定时间自动关闭

set mytime=

set /p mytimes= 【 倒计时关机请输入 小时数】:

set /a mytimes=%mytimes%*3600

set /p mytimef= 【 倒计时关机请输入 分钟数】:

set /a mytimef=%mytimef%*60

set /p mytimem= 【 倒计时关机请输入 秒 数】:

set /a mytime=%mytimes%+%mytimef%+%mytimem%

shutdown -s -t %mytime% -c "取消请运行shutdown -a"

cls

echo.

echo 〖系统将在%mytime%秒后关机〗

echo.

pause

goto loop

:bbb

@echo off

color f9

echo.

echo.

echo.

echo 现在将设置系统自关机,请在此输入关机时间(如12:00)回车,系统将定时自动关闭

set mytimes=

set mytimef=

set /p mytimes= 【 定时关机请输入 时】:

set /p mytimef= 【 定时关机请输入 分】:

at %mytimes%:%mytimef% shutdown -s -t 0

::这表示在mytime分执行shutdown -s -t 0操作.如果当前时间大于任务执行时间,则默认为明日执行,0为倒计时时间.

echo.

echo 〖现在将显示所有计划〗

echo

at

echo

pause

::显示计划并暂停

goto loop

:ccc

@echo off

color f2

echo.

echo.

echo.

echo 〖现在将设置取消系统自动关机〗

echo.

pause

shutdown -a

echo.

echo.

echo 〖现在将显示所有计划,在回车后取消计划且无须确认〗

echo

at

echo

pause

at /del /yes

::取消所有计划并无须确认

cls

echo.

echo 〖系统已经取消自动关机〗

echo 〖系统已经取消所有计划任务〗

echo.

pause

goto loop

:eee

@echo off

color f4

echo.

echo.

echo.

echo 现在将设置系统自动关机,请在此输入倒计时秒数后回车,系统将在设定时间自动关闭

set mytime=

::此行是为了清mytime变量值,以免在不注意的情况下存在变量值,此为一种好的习惯.

set mytimes=0

::赋值为0是为了使%mytimes%不致于无意义,下同.

set mytimef=0

set mytimem=0

set /p mytimes= 【 倒计时关机请输入 小时数】:

set /a mytimes=%mytimes%*3600

set /p mytimef= 【 倒计时关机请输入 分钟数】:

set /a mytimef=%mytimef%*60

set /p mytimem= 【 倒计时关机请输入 秒 数】:

color a3

mode con cols=30 lines=4

set /a mytime=%mytimes%+%mytimef%+%mytimem%

SET wait=ping -n 2 127.0.0.1 ^>^nul

for /l %%n in (%mytime%,-1,0) do (

rem cls

echo *******************

echo 〖%%n秒后自动关机〗

echo *******************

%wait%

cls

)

shutdown -s -t 0

goto loop

:fff

@echo off

color f9

echo.

echo.

echo.

echo 现在将设置系统每天运行自关机

echo.

set myopengs=

set /p myopengs= 【重复设定请输入单空格+回车,单次及最后一次设定请回车】

echo.

echo 请在此输入关机时间(如12:00)后回车,系统将定时关闭

echo.

set mytimes=

set mytimef=

set /p mytimes= 【 定时关机请输入 时】:

set /p mytimef= 【 定时关机请输入 分】:

at %mytimes%:%mytimef% /EVEry:M,T,W,Th,F,S,Su shutdown -s -f

echo.

echo 〖现在将显示所有计划〗

echo

at

echo

pause

::显示计划并暂停

if "%myopengs%"==" " goto :fff

goto loop

用记事本编写,另保存为.bat即可

运行后界面为:

***************************************************************************************

echo *** WINDOWSXP 快速关机系统 ***

echo.

echo 快速关机……………………请直接回车

echo 开始倒计时关机……………请输入1+回车

echo 设定时间点关机……………请输入2+回车

echo 显示计时关机………………请输入3+回车

echo 设定每天关机………………请输入4+回车

echo 取消系统关机………………请输入5+回车

echo 退出…………………………请输入6+回车

   第二步:

输入完毕后,保存文件,在"保存"对话框中将"保存类型"选择为"所有文件",文件名为"自动关机程序.bat"即可.

   第三步:

看看这个程序的后缀名是bat的,而且图标也很土,不要急,我们可以用WinRAR3.0以上版本将这个批处理文件做成一个exe文件,方法如下:

如果你的系统未安装WinRAR请先安装

选择"自动关机程序.bat",在右键菜单中选择"添加到档案文件(A)…"

在"压缩选项"中选择"创建自释放格式档案文件"

单击"高级"标签,单击"SFX选项",打开"高级自释放选项"在"常规"选项卡中"释放后运行"内输入压缩的文件名"自动关机程序.bat"

单击"模式"标签,选择"解包到临时文件夹",在缄默模式"内选择"全部隐藏",在"覆盖方式"内选择"覆盖所有文件"

如果您要更改默认的图标,可以打开"文本和图标"标签,在"自定义SFX文件图标"的"从文件载入SFX图标"下的.文本框中输入或浏览您喜欢的图标所在路径.如果你没有准备图标,可以打开系统所在盘后,使用搜索,在搜索文件名内输入"*.ico"就可以找到很多图标了,把找到的图标路径和文件名输入文本框即可.

依次确定后,即在原文件夹内多了一个"自动关机程序.exe"的文件了,大功现已造成啦!

虽然大家学过了一些Windows的命令,但用批处理来与用户交互并实现自动关机可能还没有试过吧.自己做一个关机程序,感觉可不一样.下面我们就利用Windows 的批处理脚本,来实现自动关机的功能,程序不算复杂,功能可一点都不少哦!本程序在Windows xp/2000/2003环境下测试通过. 第一步: 打开记事本,输入下面的文字(以rem开头的语句是注释,可以不必输入). 复制代码 代码如下:@echo off title 自动关机程序 作者:青剑 rem 这里改成你的名字好了 color 17 rem 如果你不喜欢命令行默认的黑底白字模式,可以用color命令进行更改,上面"17"代表蓝底白字. :start echo. echo. echo 请选择要进行的 *** 作,然后按回车: echo. echo 1. 定时关机 echo 2. 倒计时关机 echo 3. 删除定时关机任务 echo 4. 查看定时关机任务状态 echo 5. 注销 echo 6. 退出 echo. :set SET a= SET /P a=选择: rem 设定变量"a"为用户输入的字符 IF NOT '%a%'=='' SET a=%a:~0,1% ECHO. IF /I '%a%'=='1' goto 1 IF /I '%a%'=='2' goto 2 IF /I '%a%'=='3' goto 3 IF /I '%a%'=='4' goto 4 IF /I '%a%'=='5' goto 5 IF /I '%a%'=='6' goto 6 rem 如果输入的字符不是1-6,将返回重新输入 echo %a% 选择无效,请重新输入: echo. goto set :1 echo 请输入关机时间,(如12:00:00) set shutdowntime= set /p shutdowntime= at %shutdowntime% tsshutdn 0 /delay:0 /powerdown >nul IF not errorlevel 1 goto ok rem 如果输入正确,就执行:ok后面的语句 echo %shutdowntime% 不是标准的时间格式,请重新输入 echo. goto 1 :ok echo. echo 设定完毕! 按任意键继续... pause >nul cls goto start :2 echo 您想要多少秒后关机 echo (若设定后要取消,单击"确定"后按Ctrl+C键两次) set timed= set /p timed=输入: tsshutdn %timed% /delay:0 /powerdown >nul IF not errorlevel 1 goto ok echo %timed% 是无效的关机时间,请重新输入 echo. goto 2 :3 at /del /y echo 定时关机任务已取消,按任意键继续... pause >nul cls goto start :4 at echo 按任意键继续... pause >nul cls goto start :5 logoff :6 exit 第二步: 输入完毕后,保存文件,在"保存"对话框中将"保存类型"选择为"所有文件",文件名为"自动关机程序.bat"即可. 第三步: 看看这个程序的后缀名是bat的,而且图标也很土,不要急,我们可以用WinRAR3.0以上版本将这个批处理文件做成一个exe文件,方法如下: 如果你的系统未安装WinRAR请先安装 选择"自动关机程序.bat",在右键菜单中选择"添加到档案文件(A)…" 在"压缩选项"中选择"创建自释放格式档案文件" 单击"高级"标签,单击"SFX选项",打开"高级自释放选项"在"常规"选项卡中"释放后运行"内输入压缩的文件名"自动关机程序.bat" 单击"模式"标签,选择"解包到临时文件夹",在缄默模式"内选择"全部隐藏",在"覆盖方式"内选择"覆盖所有文件" 如果您要更改默认的图标,可以打开"文本和图标"标签,在"自定义SFX文件图标"的"从文件载入SFX图标"下的文本框中输入或浏览您喜欢的图标所在路径.如果你没有准备图标,可以打开系统所在盘后,使用搜索,在搜索文件名内输入"*.ico"就可以找到很多图标了,把找到的图标路径和文件名输入文本框即可. 依次确定后,即在原文件夹内多了一个"自动关机程序.exe"的文件了,大功现已造成啦!

以下是一条可以实现检测电脑开机时间,并且在满足要求时自动关机的批处理代码:

@echo off

setlocal enabledelayedexpansion

REM 设置需要检测的开机时间,单位为分钟

set shutdownTime=60

REM 获取系统当前时间并计算开机时间

for /f "tokens=3,4 delims=: "i in ('uptime ^| find "days"') do (

set days=i

set upTime=j

)

REM 去除字符串前导零

set /a upTimeupTimeREM 计算开机时间,单位为分钟

set /a totalUpTime=(days * 60 * 24) +upTimeREM 判断是否超过规定的开机时间

iftotalUpTime GTRshutdownTime (

REM 如果超过规定的开机时间,则关机

shutdown -s

) else (

REM 如果未超过规定的开机时间,则输出提示信息

echo 未满足自动关机条件,请继续使用计算机。

)

endlocal

在这条批处理代码中,我们使用了uptime命令来获取电脑的开机时间,并计算了开机的总时间。通过比较开机时间和预设的规定时间,来判断是否需要自动关机。如果未满足自动关机条件,则输出提示信息,如果满足条件则关机。注意,这里的单位是分钟,需要根据实际情况进行修改。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11943949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存