You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让PowerShell 5.1接收含连字符的完整参数字符串?

解决PowerShell 5.1接收含连字符的完整字符串参数问题

在PowerShell 5.1中,当你向脚本的[string]$ExtraArguments参数传递包含-的字符串时,PowerShell会默认把以-开头的内容解析为脚本的独立参数,而非目标参数的取值,这就是$ExtraArguments为空的核心原因。以下是几种可靠的解决方式:

方法1:用单引号包裹完整参数值

单引号在PowerShell中是原样字符串,不会解析内部的特殊字符(包括-),能确保整个字符串被完整传递:

.\YourScript.ps1 -ExtraArguments '-units PixelsPerInch -resample 72'

如果之前用单引号只收到-units,大概率是调用时没把整个目标字符串用单引号完整包裹,检查是否有多余的空格或引号拆分。

方法2:用反引号转义双引号内的连字符

如果需要在参数值中使用变量插值(必须用双引号),用PowerShell的原生转义符**反引号()**转义每个-`:

.\YourScript.ps1 -ExtraArguments "`-units PixelsPerInch `-resample 72"

注意:PowerShell不识别反斜杠作为转义符,必须用键盘左上角的反引号。

方法3:使用停止解析符号--%

--%会让PowerShell停止解析后续内容,直接按原生命令行格式传递参数,适合复杂的含特殊字符的场景:

.\YourScript.ps1 --% -ExtraArguments "-units PixelsPerInch -resample 72"

这种方式下,PowerShell不会再把-units等识别为脚本参数,而是完整传递给$ExtraArguments。


内容的提问来源于stack exchange,提问作者Hobbes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 01:42:36