關機腳本 完整版

修改了前次程序的錯誤。
修改瞭如下內容。
 
::close command prompt
  @echo off
::Set the default times
  set Default_hour=17
  set Default_minute=16
  set Default_second=30
 
::Cycling.
:CopeHour
 cls
::prompt the time of closing computer
echo     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo     ~~~~~Computer closed at 17:16~~~~~~~~~~~
echo     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo     ~~~~~電腦將於下午五點十六分關閉~~~~~~~
echo     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
::separate the time,get the hour, minute, second
   for /f "tokens=1,2,3* delims=:" %%i in ("%time%") do (
     ::echo %%i %%j %%k
     set C_hour=%%i
     set C_minute=%%j
     set C_MX_second=%%k)
     ::separate the MX second,get the second,mirsecond
      for /f "tokens=1,2* delims=. " %%m in ("%C_MX_second%") do (
                ::echo %%m
                  set C_second=%%m)
  echo     ~~ 當前時間: %Date%  %C_hour%:%C_minute% ~
  echo     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  echo            ~~~~~~~~~~~~~~~~~~~~
  echo            ~請不要關閉當前窗口~
  echo            ~~~~~~~~~~~~~~~~~~~~
  echo   Coping...
  set /a C_minute=%C_minute%+1  
        
:CopeMinute
   for /f "tokens=1,2,3* delims=:" %%x in ("%time%") do (
     ::echo %%x %%y %%z
     set CC_minute=%%y
     set CC_MX_second=%%z)
     ::separate the MX second,get the second,mirsecond
      for /f "tokens=1,2* delims=. " %%o in ("%CC_MX_second%") do (
                ::echo %%o %%p
                  set CC_second=%%o
                  set CC_mirosecond=%%p)
   if %CC_minute% GEQ %C_minute% (
      goto ShutComputer) else (
      ::echo %C_hour%:%C_minute% %CC_second%.%CC_mirosecond%
      goto CopeMinute)
::check times for shutdown the computer
:ShutComputer
  if %C_hour% lss %Default_hour% (
   ::echo %C_hour% 1
   ::pause
   goto CopeHour)
::原程序沒有考慮到在已經過了規定時間(小時)時執行該腳本
::若程序被執行,這將導致在往後的每個小時規定時間裏,關機一次(如果電腦正在運行)
  if %C_hour% GTR %Default_hour% (
     echo 當前時間:%time%
     echo 默認關機時間:%Default_hour%:%Default_minute%
     echo 已經過了。
     pause
     exit )
 
  if %C_hour% EQU %Default_hour% (
    if %C_minute% lss %Default_minute% (
            ::echo %C_hour%:%C_minute% 3
            ::pause
            goto CopeHour)
       if %C_minute% EQU %Default_minute% (
            ::echo %C_hour%:%C_minute% 4
            start shutdown.exe -s -t 20
            exit
            goto CopeHour) else (
::原程序沒有考慮到在已經過了規定時間(分鐘)時執行該腳本
::若程序被執行,這將導致在往後的規定的這個小時裏,每一分鐘,關機一次(如果電腦正在運行)
               echo 當前時間:%time%
               echo 默認關機時間:%Default_hour%:%Default_minute%
               echo 已經過了。
               pause
               exit ) 
         )
 start shutdown.exe -a
 exit    
 ::pause
 cls
 goto CopeHour
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章