Powershell正在从程序参数中删除逗号
我想将逗号分隔的值列表作为单个开关的一部分传递到脚本中 这是节目单Powershell正在从程序参数中删除逗号,powershell,Powershell,我想将逗号分隔的值列表作为单个开关的一部分传递到脚本中 这是节目单 param( [string]$foo ) Write-Host "[$foo]" 下面是使用示例 PS> .\inputTest.ps1 -foo one,two,three 我希望这个程序的输出是[1,2,3],但它返回的是[1,2,3]。这是一个问题,因为我想使用逗号来消除这些值 powershell为什么要删除逗号?为了保留它们,我需要做哪些更改?逗号是powershell中的一个特殊符号,表示数组分隔符
param(
[string]$foo
)
Write-Host "[$foo]"
下面是使用示例
PS> .\inputTest.ps1 -foo one,two,three
我希望这个程序的输出是[1,2,3]
,但它返回的是[1,2,3]
。这是一个问题,因为我想使用逗号来消除这些值
powershell为什么要删除逗号?为了保留它们,我需要做哪些更改?逗号是powershell中的一个特殊符号,表示数组分隔符 只需将参数用引号引起来:
inputTest.ps1 -foo "one, two, three"
或者,您可以“引用”逗号:
inputTest.ps1 -foo one`,two`,three
将其括在引号中,以便将其解释为一个变量,而不是三个逗号分隔的列表: PS>\inputTest.ps1-foo“一,二,三”
以下选项可用
inputTest.ps1-foo'one,two,three'
inputTest.ps1-foo一、二、三
单引号消除扩展。
转义字符(重重音)消除了下一个字符的扩展如果要从批处理文件传递参数,请按如下所示加密参数
“参数1、参数2、参数3、参数4”谢谢。这就是我要找的。双引号似乎有一种奇怪的行为。如果我直接在Powershell中使用它们,它们就可以工作,但如果我使用另一个程序的参数启动Powershell,它们就不能工作。