在 Win7 系統下點擊執行 `.bat` 批次檔,原本應顯示中文選單卻變成亂碼,甚至導致判斷邏輯錯誤。根因極簡單:批次檔內容以 UTF-8 編碼儲存,但 Windows 命令提示字元 (cmd.exe) 預設使用系統預設代碼頁 (CP950/Big5) 解讀,編碼不符導致中文解碼錯誤。將檔案以 ANSI (實際為系統預設代碼頁) 重新儲存即可徹底解決。

修復步驟 (記事本內建即可)
- 右鍵點擊有問題的 `.bat` 檔案 → 選擇 編輯 (會用記事本開啟)。
- 點選選單 檔案 → 另存新檔。
- 在儲存對話框底部「編碼」下拉選單,選擇 ANSI。
- 檔名保持原名,存檔類型選「所有檔案」,按 儲存 覆蓋原檔。


驗證結果
再次雙擊執行該 `.bat`,中文選單、提示訊息即可正常顯示,不再出現亂碼。

補充說明
- ANSI ≠ 固定編碼:在中文版 Windows 上,ANSI 實指 CP950 (Big5);英文版則為 CP1252。批次檔僅在對應系統代碼頁下正確顯示。
- Notepad++ / VS Code 等進階編輯器:另存新檔時選「Encoding → Convert to ANSI」或「Save with Encoding: ANSI」同理。
- PowerShell 腳本 (.ps1):預設支援 UTF-8 (含 BOM),不存在此問題;但若在 cmd 執行 .bat 呼叫 .ps1 仍需注意編碼傳遞。
- 跨平台腳本:若需在 Linux/macOS (預設 UTF-8) 也能跑,建議改寫為 Python/PowerShell Core 或統一使用 UTF-8 with BOM 並在腳本開頭用 `chcp 65001` 切換代碼頁 (Win10 1809+ 支援較佳)。
一個「另存新檔 ANSI」動作,省去重寫腳本與查詢代碼頁的麻煩,Win7 批次檔亂碼問題秒解。