文件名称:BAT文件 定时关机软件
文件大小:5KB
文件格式:BAT
更新时间:2014-08-09 08:47:22
定时关机软件
绝对的绿色软件。。BAT文件 @echo off & cls & color 27 & mode con cols=70 lines=25 & title [定时关机工具] 今天是:%date:~0,4%年%date:~5,2%月%date:~8,2%日,%time:~0,2%点%time:~3,2% 分%time:~6,5%秒 ::10080是你设定的上限,7天应该够了吧.如果不够,你可以自己更改.. set n=10080 ::这句话在这是没用的.作为一个完整的工具,在打包时会附上shutdown.exe这个程序.单独拷贝这个程序,XP系统才能使用,WIN 2003 或VISTA系统能不能使用,我没有测试过. if exist %windir%\system32\shutdown.exe (goto :home) else (copy %temp%\shutdown.exe %windir%\system32\) :home cls echo. echo 温馨提示:爱机也需休息! echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ echo S.定时关机 R.定时重启 A.取消定时 echo. echo G.立即关机 C.立即重启 E.放弃退出 echo. echo M.无倒计时窗口关机 Y.无倒计时窗口重启 echo. set /P a= 请选择操作代号: SET w1=R S A E G C M Y FOR %%B IN (%w1%) DO IF /I "%a%"=="%%B" set flag=1 ECHO. if defined flag ( goto :%a% ) else ( SET /P N= 请选择选项里应有的操作.[Y-继续]: ) IF /I "%N%"=="Y" (GOTO :home) ELSE (exit) :S cls echo. echo. echo. echo ┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓ echo ┃注意:时间必须为纯数字,并且倒计时间不得大于%n%分钟.┃ echo ┃ ┃ echo ┃因关机时不保存数据,避免损失,倒计时间不得少于1分钟. ┃ echo ┃ ┃ echo ┃如输入:30,将会在30分钟后关机.会有倒计时窗口,不能关闭┃ echo ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛ echo. :s1 Set /p time= 请输入关机倒计时间,Q-返回: ECHO. if /i "%time%"=="q" goto :home if %time% lss 1 ( echo 因关机时不保存数据,避免损失,倒计时间不得少于1分钟. echo. echo 如想快速关机,请返回主菜单,[G]键立即关机. echo. goto :s1 ) if %time% lss %n% (goto :gj) else ( echo 注意:时间必须为纯数字,并且倒计时间不得大于%n%分钟. echo. goto :s1) :gj set /a time1=%time%*60 shutdown -s -f -c "你输入的是%time%分钟后关机" -t %time1% goto :q :R cls echo. echo. echo. echo ┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓ echo ┃注意:时间必须为纯数字,并且倒计时间不得大于%n%分钟.┃ echo ┃ ┃ echo ┃因关机时不保存数据,避免损失,倒计时间不得少于1分钟. ┃ echo ┃ ┃ echo ┃如输入:31,将会在31分钟后重启.会有倒计时窗口,不能关闭┃ echo ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛ echo. :r1 Set /p time= 请输入重启倒计时间(分钟),Q-返回: ECHO. if /i "%time%"=="q" goto :home if %time% lss 1 ( echo 因重启时不保存数据,避免损失,倒计时间不得少于1分钟. echo. echo 如想快速重启,请返回主菜单,[C]键立即重启. echo. goto :r1 ) if %time% lss %n% (goto :cq) else ( echo 注意:时间必须为纯数字,并且倒计时间不得大于%n%分钟. echo. goto :r1) :cq set /a time1=%time%*60 shutdown -R -f -c "你输入的是%time%分钟后重启" -t %time1% goto :q :A ::在这里其实我偷了点懒,就是在不管有没有"无倒计时窗口关机"的任务情况下都会提示,但如果有窗口关机和无窗口关机同存在时,则不会出现"没有关机任务! "的提示.也就是说在提示" 没有关机任务! "的时候,你的"无倒计时窗口关机"的任务是删除掉了的. at /d /y shutdown -a | find "没有" >nul if "%ERRORLEVEL%"=="0" echo 没有关机任务! echo. goto :q :g shutdown -F -S -T 0 goto :q :c shutdown -F -R -T 0 goto :q :m echo 时间使用24小时制(如2:15、14:15),在关机前30秒会 echo 出现关机倒计时框. ECHO. :m1 SET /P time= 因关机不保存数据,请仔细输入时间(Q-返回): if /i "%time%"=="q" goto :home if not "%time%"=="" for %%s in (%time%) do ( at %%s /every:M,T,W,Th,F,S,Su shutdown -F -s | find "无效的命令" >nul ) if "%ERRORLEVEL%"=="A" ( echo. echo 无效的时间,重新输入! ECHO. goto :m1 ) echo. ::这句是在注册表启动项加上删除倒计时关机.本来想写一个选择,是否要在每天的这个时间(你设定的时间)定时关机,觉得又不是太常用,所以就没有写下去了.如果你希望设定的时候在每天都有效那就删掉下面的一行吧. reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v 取消定时关机 /t reg_sz /d "at /d /y" /f>nul echo 将在%time%关机! echo. goto :q :y echo 时间使用24小时制(如2:15、14:15),在关机前30秒会 echo 出现关机倒计时框. ECHO. :Y1 SET /P time= 因重启不保存数据,请仔细输入时间(Q-返回): if /i "%time%"=="q" goto :home if not "%time%"=="" for %%s in (%time%) do ( at %%s /every:M,T,W,Th,F,S,Su shutdown -F -R | find "无效的命令" >nul ) if "%ERRORLEVEL%"=="A" ( echo. echo 无效的时间,重新输入! ECHO. goto :Y1 ) echo. ::这句同上面的那句. reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v 取消定时关机 /t reg_sz /d "at /d /y" /f>nul echo 将在%time%重启! echo. goto :q :q echo 操作成功 ! 任意键返回... pause >nul goto :home :E exit