珍惜生命,學習 Java 請少用 PowerShell 當成你主要的 Shell 環境: https://blog.miniasp.com/post/2022/09/09/Use-Command-Prompt-for-your-default-shell-in-Windows-for-Java-Developers
TLDR
- PowerShell 會把參數列中的第一個 . (dot) 分段,一個參數就變成兩個參數了
- 在 PowerShell 的 GitHub Repo 找到 Parameter parsing/passing: an unquoted argument that starts with a ”-” (hyphen) is broken in two at the first ”.” (period) #6291 這個 Issue (議題),發現這還真的是一個 Bug 耶,而且存在很久了,微軟遲遲不修掉,也不說明原因,也不說何時要修。重點是,超多人遇到過跟這個 Bug 相關的錯誤,浪費大家無數的時間
解决方案
- 所有參數都加上單引號也可以
- 從 PowerShell 3.0 開始,有個「停用解析」功能,你只要在命令後加上
--%
這個特殊的 Token 就可以停用解析