WINDOWS11 設計一個倒數計時(輸入分鐘)定時關機 使用BAT(ANSI編碼)
WINDOWS11 設計一個倒數計時(輸入分鐘)定時關機 使用BAT(ANSI編碼)
資料來源: chargpt+gemini+自己
code
@echo off chcp 950 rem 檢查是否有倒數檔案存在 if exist countdown_status.txt ( echo 倒數計時正在進行中... type countdown_status.txt exit /b ) :input_minutes set /p minutes="請輸入倒數分鐘數:" rem 檢查輸入是否為有效的數字 rem 這是一個簡單的檢查,可以防止非數字輸入導致錯誤 for /f "delims=0123456789" %%i in ("%minutes%") do ( echo 輸入無效,請輸入數字! goto input_minutes ) if "%minutes%"=="" ( echo 輸入不能為空,請輸入數字! goto input_minutes ) set /a countdown=%minutes%*60 rem 顯示確認訊息 echo 您輸入的時間為 %minutes% 分鐘 (%countdown% 秒)。 set /p confirm="如果確認無誤,請輸入 Y 開始倒數,或輸入 N 重新輸入:" rem 清除用戶輸入中的空格和換行符 rem 這幾行是為了確保變數內容乾淨,避免誤判 set confirm=%confirm: =% set confirm=%confirm:~0,1% rem 根據使用者的輸入來判斷 rem 這裡使用了更安全的判斷結構,避免將變數內容誤認為指令 if /i "%confirm%"=="Y" ( goto countdown_start ) else if /i "%confirm%"=="N" ( goto input_minutes ) else ( echo 輸入錯誤,請重新執行腳本。 goto end ) :countdown_start echo 倒數計時開始,將於 %countdown% 秒後強制關機。 rem 創建倒數狀態檔案 rem 此檔案用於標記倒數正在進行中,避免重複執行 echo 倒數開始,將於 %countdown% 秒後關機。 > countdown_status.txt rem 倒數計時 for /l %%i in (%countdown%, -1, 1) do ( cls echo 倒數計時:%%i 秒 echo 倒數計時:%%i 秒 > countdown_status.txt timeout /nobreak /t 1 >nul ) rem 強制關機 shutdown /s /f /t 0 rem 清除倒數狀態檔案 del countdown_status.txt :end
ps.Windows 中Command line切換字碼方法:chcp
chcp 950 中文 chcp 938/5033 繁體中文 chcp 936/5031 簡體中文 chcp 437 美國英 chcp 65001 UTF8
2 thoughts on “WINDOWS11 設計一個倒數計時(輸入分鐘)定時關機 使用BAT(ANSI編碼)”
要把電腦休眠關閉才可以
這條指令 shutdown /s /f /t 0 用來強制關機,具體作用如下:
/s:啟動關機操作。
/f:強制關閉所有應用程式,並且不顯示警告。
/t 0:設定關機倒計時為 0 秒,立即執行。
簡單來說,這條指令會在 0 秒內強制關閉電腦,並終止所有應用程式。