(bat)指定周幾的幾點重啟電腦


 

 

使用說明:

第一次運行會提示您配置參數,設置完成后會生成一個.ini配置文件 和 一個.log日志

若要重新配置參數,需要刪除.ini的配置文件 並 再次運行bat

若要刪除計划任務,需要刪除.ini的配置文件並再次運行bat 根據bat內提示操作

不能更改bat及和它生成的路徑位置。否則設置的計划任務會無效。

 

 

存在BUG:

1.比如 設置成星期一的 8:00 進行重啟 ,那么在星期一的時候(無論是幾點鍾) 手動運行也會觸發重啟,因為沒有加時間判定。

2. 不能檢查輸入的時間格式,錯誤的時間格式並不能配置成功

可能存在未知BUG,未進行全面測試

@Echo off
SET ROOT=%~dp0
SET CONFIG_FILE=%ROOT%config_d.ini
set log=%ROOT%log.log
set logtime=%date:~,10% %time:~,8%
if exist "%log%" (goto :you ) else (goto :mei)

:you
echo ============================================================ >>log.log
echo %logtime% 開始運行 >>log.log
goto :ini

:mei
echo 以下為運行日志 >log.log
echo ============================================================ >>log.log
echo %logtime% 開始運行 >>log.log
goto :ini

:ini
if exist "%CONFIG_FILE%" (goto :ok ) else (goto :no)

:no
echo 配置文件不存在,已經進入配置頁面  >>log.log
echo      =====================================================
echo               配置文件不存在,您已經進入配置頁面
echo      按(S)刪除重啟計划 或 直接按下方括號中的數字重新設置
echo      =====================================================
goto :no1

:no1
echo,
echo                  請選擇您要在星期幾設定重啟
echo,
echo (1)星期一    (2)星期二    (3)星期三    (4)星期四
echo (5)星期五    (6)星期六    (7)星期日    (0)退  出
echo,
echo               請輸入上方括號中的數字進行下一步
choice /c 12345670s /n >nul
if %errorlevel%== 1 (set xingqi=一)
if %errorlevel%== 2 (set xingqi=二)
if %errorlevel%== 3 (set xingqi=三)
if %errorlevel%== 4 (set xingqi=四)
if %errorlevel%== 5 (set xingqi=五)
if %errorlevel%== 6 (set xingqi=六)
if %errorlevel%== 7 (set xingqi=日)
if %errorlevel%== 8 (goto :q )
if %errorlevel%== 9 (goto :s)
echo,
echo 您選擇的是星期%xingqi%
echo 設置星期為%xingqi% >>log.log
goto shijian

:shijian
echo,
echo 您要在星期%xingqi%那個時間重啟電腦?
echo 時間格式為 HH:mm(24 小時時間) 請嚴格按照提示輸入
echo 例如 14:30 , 07:01 ,09:55 , 23:32
set /p shijian=請輸入時間並按回車鍵:
goto :zb

:zb
echo,
echo 根據您的輸入 將在每星期的星期%xingqi%的 %shijian% 進行重啟
echo 請再三確定時間格式為 HH:mm 和標點符號是否正確
echo 否則出現的各種未知問題,本程序概不負責
echo,
echo 確認請按(y)  修改星期請按(x)  修改時間請按(j)  退出請按(q)
choice /c yxjq /n >nul
if %errorlevel%== 1 (goto :xieru)
if %errorlevel%== 2 (goto :xingqi)
if %errorlevel%== 3 (goto :shijian)
if %errorlevel%== 4 (goto :q)

:xingqi
echo,
echo                請再次選擇您要在星期幾設定重啟
echo,
echo (1)星期一    (2)星期二    (3)星期三    (4)星期四
echo (5)星期五    (6)星期六    (7)星期日    (0)退  出
echo,
echo               請輸入上方括號中的數字進行下一步
choice /c 12345670 /n >nul
if %errorlevel%== 1 (set xingqi=一)
if %errorlevel%== 2 (set xingqi=二)
if %errorlevel%== 3 (set xingqi=三)
if %errorlevel%== 4 (set xingqi=四)
if %errorlevel%== 5 (set xingqi=五)
if %errorlevel%== 6 (set xingqi=六)
if %errorlevel%== 7 (set xingqi=日)
if %errorlevel%== 8 (goto :q )
echo 修改星期為%xingqi% >>log.log
goto :zb

:xieru
echo 設置為星期%xingqi%的 %shijian%,並開始生成ini >>log.log
echo 此配置文件為設定定時重啟任務時生成,必須與主程序存在同一目錄下 >"%CONFIG_FILE%"
echo 請不要隨意修改以下參數,若要重新設置定時重啟任務請刪除本配置文件后,允許主程序 >>"%CONFIG_FILE%"
echo date1=%xingqi% >>"%CONFIG_FILE%"
echo time1=%shijian% >>"%CONFIG_FILE%"
goto :shezhi

:shezhi
echo,
set chengxu="cmd /c '%~0'"
schtasks /create /tn 定時重啟任務 /tr %chengxu% /sc DAILY /st %shijian% /ru %username% /f
echo 設置完成 >>log.log
echo 按任意鍵退出
pause >nul
exit

:ok
echo 發現ini,正在執行 >>log.log
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('type "config_d.ini"^| find /i "="') do (
set %%a
)
echo %date1%
echo %time1%
set bb=%date:~12,13%
if %bb%==%date1% goto :open
goto :ex

 
:open
echo 當前是星期%bb%,當前時間為%time:~,8%。與設置相符,開始重啟 >>log.log
shutdown /r /f /t 5
exit

:ex
echo 當前是星期%bb%,當前時間為%time:~,8%。與設置不相符。程序退出 >>log.log
echo 將在明天的%time1%。再次檢查。程序退出 >>log.log
exit

:s
schtasks /delete /tn 定時重啟任務 /f >>log.log
echo 已刪除重啟計划
goto :no1

:q
echo 用戶選擇退出 >>log.log
exit

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM