Windows 11下如何传递命令行参数使程序获取到["TestPassword"]
在Windows 11中传递带方括号和引号的命令行参数
要让应用程序接收到完整的["TestPassword"]作为参数,需根据使用的命令行环境(CMD或PowerShell)采用对应的转义方式:
CMD环境
CMD中方括号不属于特殊字符无需转义,但引号需要用^转义,避免被命令行解析器过滤。执行命令如下:
SomeExe.exe [^"TestPassword^"]
解析逻辑:^会将后续的引号标记为普通字符,CMD会将整个["TestPassword"]作为单个参数传递给程序。
PowerShell环境
PowerShell有两种可靠的处理方式:
- 单引号包裹法:单引号内的内容会被原样传递,无需转义内部引号:
SomeExe.exe '["TestPassword"]'
- 双引号转义法:用反引号(`)转义内部的双引号:
SomeExe.exe "[`"TestPassword`"]"
原命令失效原因
直接执行SomeExe.exe ["TestPassword"]时,命令行解析器会将引号视为参数包裹标记而非内容的一部分,最终传递给程序的是[TestPassword],丢失了内部的引号。
内容的提问来源于stack exchange,提问作者oOo
相关产品推荐
相关产品推荐

