[BAT]用批处理控制计算机(关机,重启,锁定,注销,修改时间)


@ECHO   off
TITLE 自动关机程序 


:start
CLS
COLOR 1f
rem  使用COLOR命令对控制台输出颜色进行更改
MODE  con: COLS = 41  LINES = 18
rem  MODE语句为设定窗体的宽和高
set  tm1 = % time :~ 0 , 2 %
set  tm2 = % time :~ 3 , 2 %
set  tm3 = % time :~ 6 , 2 %
ECHO  % date % %tm1%点%tm2%分%tm3%秒
ECHO   =========================================
ECHO  请选择要进行的操作,然后按回车
ECHO  ───────────────
ECHO .
ECHO   1 .  定时关机
ECHO   2 .  倒计时关机
ECHO   3 .  删除定时关机任务
ECHO   4 .  查看任务状态
ECHO   5 .  刷新当前时间
ECHO   6 .  重新启动
ECHO   7 .  锁定计算机
ECHO   8 .  注销
ECHO   9 .  退出
ECHO .

:cho  
SET   Choice =
SET   / Choice = 选择:
rem  设定变量"Choice"为用户输入的字符
IF   NOT   " %Choice% " == ""   SET   Choice = % Choice :~ 0 , 1 %
rem  如果输入大于1位,取第1位,比如输入132,则返回值为1
ECHO .
IF   / " %Choice% " == " 1 "   GOTO  SetHour
IF   / " %Choice% " == " 2 "   GOTO  outtime
IF   / " %Choice% " == " 3 "   GOTO  delAt
IF   / " %Choice% " == " 4 "   GOTO   view
IF   / " %Choice% " == " 5 "   GOTO   start
IF   / " %Choice% " == " 6 "   GOTO  restart
IF   / " %Choice% " == " 7 "   GOTO  lock
IF   / " %Choice% " == " 8 "   GOTO  logoff
IF   / " %Choice% " == " 9 "   GOTO   end
rem  为避免出现返回值为空或含空格而导致程序异常,需在变量外另加双引号
rem
 注意,IF语句需要双等于号
rem
 如果输入的字符不是以上数字,将返回重新输入
ECHO  选择无效,请重新输入
ECHO .
GOTO  cho

:SetHour
CLS
ECHO .
SET  ask =
SET   / p ask = 是否设定为每天执行关机命令 ( y / n ) :
IF   NOT   " %ask% " == ""   SET  ask = %ask:~ 0 , 1 %
IF   / " %ask% " == " y "   GOTO  yes
IF   / " %ask% " == " n "   GOTO  no
GOTO  SetHour

:yes
ECHO  请指定24小时制式时间 , 格式为 小时 :分钟
SET  shutdowntime =
SET   / p shutdowntime = 输入:
at %shutdowntime% 
/ every :M , T , W , Th , F , S , Su tsshutdn  0   / delay: 0   / powerdown  > nul
rem  设定为每周的星期一至星期日,即为每天
IF   NOT   errorlevel   1   GOTO  ok
rem  如果输入正确,就执行ok段的语句
ECHO  %shutdowntime% 不是标准的时间格式 , 请重新输入
ECHO .
GOTO  yes

:no
ECHO  请指定24小时制式时间 , 格式为 小时 :分钟
SET  shutdowntime =
SET   / p shutdowntime = 输入:
at %shutdowntime% tsshutdn 
0   / delay: 0   / powerdown  > nul
IF   NOT   errorlevel   1   GOTO  ok
ECHO  %shutdowntime% 不是标准的时间格式 , 请重新输入
ECHO .
GOTO  no

:ok
ECHO .
SET  h = %shutdowntime:~ 1 , 1 %
SET  ah = %shutdowntime:~ 0 , 1 %
SET  am = %shutdowntime:~ 2 , 2 %
SET  bh = %shutdowntime:~ 0 , 2 %
SET  bm = %shutdowntime:~ 3 , 2 %
IF   " %h% " == " : "   (
SET  HM = %ah%时%am%分
)   ELSE   (
SET  HM = %bh%时%bm%分 )
rem  如果输入h:mm则HM=h时mm分,否则HM=hh时mm分 
IF   / " %ask% " == " y "   ECHO  系统将于每天的%HM%关闭
IF   / " %ask% " == " n "   ECHO  系统将于%HM%关闭
ECHO  设定完毕! 按任意键继续 ...
PAUSE   > nul
GOTO   start

:outtime
CLS
ECHO .
ECHO  请输入倒计时秒数
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  outtime

:delAt
cls
echo .
at 
/ del   / y
echo  定时关机任务已取消 , 按任意键继续 ...
pause   > nul
GOTO   start

:view
MODE  con: COLS = 85  LINES = 18
COLOR 
70
ECHO .
at
ECHO  按任意键继续 ...
PAUSE   > nul
GOTO   start

:restart
shutdown -r -t 
0

:lock
rundll32
. exe user32 . dll , LockWorkStation
goto   start

:logoff
logoff

:end
exit

:logoff
logoff

:end
exit 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值