我想将逗号分隔的值列表作为单个开关的一部分传递到脚本中。
这是程序。
param(
[string]$foo
)
Write-Host "[$foo]"
这是使用示例
PS> .\inputTest.ps1 -foo one,two,three
我希望这个程序的输出是,[one,two,three]
但它正在返回[one two three]
。这是一个问题,因为我想使用逗号来分隔值。
为什么 powershell 删除逗号,我需要更改什么才能保留它们?
我想将逗号分隔的值列表作为单个开关的一部分传递到脚本中。
这是程序。
param(
[string]$foo
)
Write-Host "[$foo]"
这是使用示例
PS> .\inputTest.ps1 -foo one,two,three
我希望这个程序的输出是,[one,two,three]
但它正在返回[one two three]
。这是一个问题,因为我想使用逗号来分隔值。
为什么 powershell 删除逗号,我需要更改什么才能保留它们?
逗号是 powershell 中的一个特殊符号,用于表示数组分隔符。
只需将参数放在引号中:
inputTest.ps1 -foo "one, two, three"
或者,您可以“引用”逗号:
inputTest.ps1 -foo one`,two`,three
有以下选择
所有参数的引号 (')
inputTest.ps1 -foo 'one,two,three'
每个逗号前的 Powershell 转义字符(重音 (`))
inputTest.ps1 -foo one`,two`,three
参数周围的双引号不会改变任何东西!
单引号消除扩展。
转义字符(重音)消除了下一个字符的扩展
将其括在引号中,以便将其解释为一个变量,而不是逗号分隔的三个列表:
PS> .\inputTest.ps1 -foo "一、二、三"
如果您要从批处理文件中传递参数,则将您的参数包含在下面“”“Param1,Param2,Param3,Param4”“”