经典批处理实现自动关机BAT.docx
《经典批处理实现自动关机BAT.docx》由会员分享,可在线阅读,更多相关《经典批处理实现自动关机BAT.docx(7页珍藏版)》请在冰豆网上搜索。
经典批处理实现自动关机BAT
经典批处理实现自动关机.BAT
这两个自动关机命令基本上一样,不过都很精典,值得“研究”下,真的是研究,在服务器上这个很有用的,因为服务器上的权限限制很严格,用DOS的批处理真的可以做很多事,比如这里面的取时间的方法,我试了好多方法都没实现,原来也这么简单。
呵呵,感觉很好
经典批处理实现自动关机1.BAT@ECHOoff
TITLE自动关机程序作者:
廖晓青:
:
启动TaskScheduler服务
scconfigSchedulestart=AUTO
netstartSchedule:
start
CLS
COLOR1f
rem使用COLOR命令对控制台输出颜色进行更改
MODEcon:
COLS=41LINES=18
remMODE语句为设定窗体的宽和高
settm1=%time:
~0,2%
settm2=%time:
~3,2%
settm3=%time:
~6,2%
ECHO%date%%tm1%点%tm2%分%tm3%秒
ECHO=========================================
ECHO请选择要进行的操作,然后按回车
ECHO───────────────
ECHO.
ECHO1.定时关机
ECHO2.倒计时关机
ECHO3.删除定时关机任务
ECHO4.查看任务状态
ECHO5.刷新当前时间
ECHO6.重新启动
ECHO7.锁定计算机
ECHO8.注销
ECHO9.退出
ECHO.:
cho
SETChoice=
SET/PChoice=选择:
rem设定变量"Choice"为用户输入的字符
IFNOT"%Choice%"==""SETChoice=%Choice:
~0,1%
rem如果输入大于1位,取第1位,比如输入132,则返回值为1
ECHO.
IF/I"%Choice%"=="1"GOTOSetHour
IF/I"%Choice%"=="2"GOTOouttime
IF/I"%Choice%"=="3"GOTOdelAt
IF/I"%Choice%"=="4"GOTOview
IF/I"%Choice%"=="5"GOTOstart
IF/I"%Choice%"=="6"GOTOrestart
IF/I"%Choice%"=="7"GOTOlock
IF/I"%Choice%"=="8"GOTOlogoff
IF/I"%Choice%"=="9"GOTOend
rem为避免出现返回值为空或含空格而导致程序异常,需在变量外另加双引号
rem注意,IF语句需要双等于号
rem如果输入的字符不是以上数字,将返回重新输入
ECHO选择无效,请重新输入
ECHO.
GOTOcho:
SetHour
CLS
ECHO.
SETask=
SET/pask=是否设定为每天执行关机命令(y/n):
IFNOT"%ask%"==""SETask=%ask:
~0,1%
IF/I"%ask%"=="y"GOTOyes
IF/I"%ask%"=="n"GOTOno
GOTOSetHour:
yes
ECHO请指定24小时制式时间,格式为小时:
分钟
SETshutdowntime=
SET/pshutdowntime=输入:
at%shutdowntime%/every:
M,T,W,Th,F,S,Sutsshutdn0/delay:
0/powerdown>nul
rem设定为每周的星期一至星期日,即为每天
IFNOTerrorlevel1GOTOok
rem如果输入正确,就执行ok段的语句
ECHO%shutdowntime%不是标准的时间格式,请重新输入
ECHO.
GOTOyes:
no
ECHO请指定24小时制式时间,格式为小时:
分钟
SETshutdowntime=
SET/pshutdowntime=输入:
at%shutdowntime%tsshutdn0/delay:
0/powerdown>nul
IFNOTerrorlevel1GOTOok
ECHO%shutdowntime%不是标准的时间格式,请重新输入
ECHO.
GOTOno:
ok
ECHO.
SETh=%shutdowntime:
~1,1%
SETah=%shutdowntime:
~0,1%
SETam=%shutdowntime:
~2,2%
SETbh=%shutdowntime:
~0,2%
SETbm=%shutdowntime:
~3,2%
IF"%h%"==":
"(
SETHM=%ah%时%am%分
)ELSE(
SETHM=%bh%时%bm%分)
rem如果输入h:
mm则HM=h时mm分,否则HM=hh时mm分
IF/I"%ask%"=="y"ECHO系统将于每天的%HM%关闭
IF/I"%ask%"=="n"ECHO系统将于%HM%关闭
ECHO设定完毕!
按任意键继续...
PAUSE>nul
GOTOstart:
outtime
CLS
ECHO.
ECHO请输入倒计时秒数
ECHO────────
ECHO(设定后要取消,单击"确定"后按Ctrl+C键两次)
SETtimed=
SET/ptimed=输入:
tsshutdn%timed%/delay:
0/powerdown>nul
IFnoterrorlevel1GOTOok
ECHO%timed%是无效的关机时间,请重新输入
ECHO.
GOTOouttime:
delAt
cls
echo.
at/del/y
echo定时关机任务已取消,按任意键继续...
pause>nul
GOTOstart:
view
MODEcon:
COLS=85LINES=18
COLOR70
ECHO.
at
ECHO按任意键继续...
PAUSE>nul
GOTOstart:
restart
shutdown-r-t0:
lock
rundll32.exeuser32.dll,LockWorkStation
gotostart:
logoff
logoff:
end
exit
经典批处理实现自动关机2.BAT@echooff
title自动关机程序作者:
青剑:
:
启动TaskScheduler服务
scconfigSchedulestart=AUTO
netstartSchedulecolor17
rem如果你不喜欢命令行默认的黑底白字模式,可以用color命令进行更改,上面"17"代表蓝底白字.
:
start
echo.
echo.
echo请选择要进行的操作,然后按回车:
echo.
echo1.定时关机
echo2.倒计时关机
echo3.删除定时关机任务
echo4.查看定时关机任务状态
echo5.注销
echo6.退出
echo.
:
set
SETa=
SET/Pa=选择:
rem设定变量"a"为用户输入的字符
IFNOT'%a%'==''SETa=%a:
~0,1%
ECHO.
IF/I'%a%'=='1'goto1
IF/I'%a%'=='2'goto2
IF/I'%a%'=='3'goto3
IF/I'%a%'=='4'goto4
IF/I'%a%'=='5'goto5
IF/I'%a%'=='6'goto6
rem如果输入的字符不是1-6,将返回重新输入
echo%a%选择无效,请重新输入:
echo.
gotoset
:
1
echo请输入关机时间,(如12:
00:
00)
setshutdowntime=
set/pshutdowntime=
at%shutdowntime%tsshutdn0/delay:
0/powerdown>nul
IFnoterrorlevel1gotook
rem如果输入正确,就执行:
ok后面的语句
echo%shutdowntime%不是标准的时间格式,请重新输入
echo.
goto1
:
ok
echo.
echo设定完毕!
按任意键继续...
pause>nul
cls
gotostart
:
2
echo您想要多少秒后关机
echo(若设定后要取消,单击"确定"后按Ctrl+C键两次)
settimed=
set/ptimed=输入:
tsshutdn%timed%/delay:
0/powerdown>nul
IFnoterrorlevel1gotook
echo%timed%是无效的关机时间,请重新输入
echo.
goto2
:
3
at/del/y
echo定时关机任务已取消,按任意键继续...
pause>nul
cls
gotostart
:
4
at
echo按任意键继续...
pause>nul
cls
gotostart
:
5
logoff
:
6
exit