Windows XP自動關機的批處理文件
關機程序網絡上很多,今天咱們自個用批處理輕輕松松的DIY一個,原理超級簡單,看完之后自己做一個自己的定時關機程序。
最近出了不少電影,自己一個人也懶得去電影院了,就到網上下載回來晚上沒事的時候看。白天要上班,開著電腦下載電影,用自動關機程序設定好時間,等電影差不多下載完成了,就自動關機。網上定時關機程序一大把,可咱就是想弄一個比較個性化的,自己DIY一個。
先來看看原理,Windows XP的關機是由Shutdown.exe程序來控制的,位于Windows\System32文件夾中,把這個程序跟批處理結合一下就可以DIY一個自動關機程序出來了。
知道了相關原理之后,開始寫批處理了: @echo off title;;;;系統關機 :loop cls color bc echo. echo. echo;;;;;*** WindowsXP;快速關機系統 *** echo. echo;;;;;快速關機……………………請直接回車 echo;;;;;開始倒計時關機……………請輸入1+回車 echo;;;;;設定時間點關機……………請輸入2+回車 echo;;;;;顯示計時關機………………請輸入3+回車 echo;;;;;設定每天關機………………請輸入4+回車 echo;;;;;取消系統關機………………請輸入空格+回車 echo;;;;;退出…………………………請輸入Q+回車 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文件即可。