我在使用可变数量参数的脚本运行powershell时遇到问题。如何从命令行将字符串参数传递给Powershell for ConvertFrom-StringData?
脚本文件是这样的:
param([string]$paramString)
$params = ConvertFrom-StringData $paramString
$params
直接在PowerShell中运行脚本产生预期的结果:
[PS] C:\some\path>.\test.ps1 "a=foo `n b=bar `n c=moo"
Name Value
---- -----
c moo
a foo
b bar
从相同的脚本和参数从命令行调用PowerShell中显示了这种:
C:\some\path>powershell -nologo -file ./test.ps1 "a=foo `n b=bar `n c=moo"
Name Value
---- -----
a foo `n b=bar `n c=moo
看起来好像传递的字符串是在某种格式下,ConvertFrom-StringData
函数无法再解析它。
感谢罗马,那工作。只是另一件事的附录:我有一个脚本的第二个参数,其中包含一个字面应该从字面上使用的字符串。使用“”param1“”“”a = foo`n b = bar`n c = moo“”导致两个字符串被连接在一起。我必须使用'param1'“”a = foo`n b = bar`n c = moo“”才能使其按预期工作。 – 2010-11-26 12:54:26