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 秒內強制關閉電腦,並終止所有應用程式。