在 Windows 的 cmd 命令列環境下,許多 command line 工具只要路徑出現中文或空白,就會執行失敗。最常見的例子就是 `C:\Program Files`——中間那個空格經常讓指令解析錯誤。這篇文章教你用 `dir /x` 查出資料夾的 8.3 短檔名,用 `C:\PROGRA~1` 這類縮寫取代原本的路徑,快速繞過這個問題。
為什麼路徑有中文或空白會導致執行失敗?
使用 cmd 指令時,有許多 command line 執行的工具,當路徑出現中文或是空白時,會導致執行失敗。例如 `C:\Program Files` 因為中間有一個空格,就很容易造成在執行時出現錯誤——工具把空格當成參數分隔符,後半段路徑就被誤認成另一個參數。
若遇到這種狀況,建議可以改用資料夾的縮寫(也就是 Windows 的 8.3 短檔名格式):
| 原本路徑 | 改用縮寫 |
|---|---|
| `C:\Program Files` | `C:\PROGRA~1` |
| `C:\Program Files (x86)` | `C:\PROGRA~2` |
如何查找資料夾名稱縮寫?
在 cmd 裡切到目標資料夾的上一層,執行 `dir /x`:
```cmd
C:\Users\claire.chang>dir /x
```
`/x` 參數會額外顯示每個檔案與資料夾的短檔名(8.3 格式)欄位:

以上圖來說,資料夾 `.android` 的縮寫即為 `ANDROI~1`。之後在指令中就能用這個短檔名取代原本含特殊字元的完整路徑。
使用短檔名要注意什麼?
- 短檔名的 `~1`、`~2` 編號依資料夾建立順序決定,同一台機器上通常固定,但不同機器可能不同,部署腳本要避免寫死。
- 若系統以 `fsutil 8dot3name` 停用了 8.3 檔名產生,`dir /x` 會查不到縮寫,需先確認系統設定。
- 另一個常見替代做法是用雙引號包住含空格的路徑(如 `"C:\Program Files"`),但部分老旧工具不支援引號解析,此時短檔名仍是最保險的方式。
延伸閱讀
常見問題
為什麼 C:\Program Files 會造成指令執行失敗?
因為路徑中間的空格會被 command line 工具當成參數分隔符,導致路徑被切斷、工具收到錯誤的參數。用短檔名 `C:\PROGRA~1` 或雙引號包住路徑都可以解決。
如何查詢 Windows 資料夾的短檔名?
在該資料夾的上一層執行 `dir /x`,輸出中會多出一欄 8.3 格式的短檔名,例如 `.android` 對應 `ANDROI~1`。
C:\Program Files (x86) 的短檔名是什麼?
一般是 `C:\PROGRA~2`。`~1` 給先建立的 `Program Files`,`~2` 給 `Program Files (x86)`,實際編號仍建議用 `dir /x` 確認。
除了短檔名還有其他解法嗎?
可以用雙引號把含空格的路徑包起來,例如 `"C:\Program Files"`。不過部分老舊工具不支援引號解析,這時短檔名縮寫會是更可靠的做法。
參考資料
- Microsoft Learn:fsutil 8dot3name
最後更新
2026-08-28(原文發布於 2020-03-18,本文保留原始筆記內容並補上 GEO 結構。)
關於作者 {#author}
Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。
首次發布:2020-03-18
