我遇到了使用一个可变数量参数的powershell脚本运行问题。
脚本文件如下:
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
函数无法再解析它。
n b=bar
n c=moo""会导致两个字符串被连接起来。我必须使用'param1' ""a=foon b=bar
n c=moo""才能使其按预期工作。 - Gerald Schneider-Command
方法不能涵盖-File
方法的所有用例。 - Roman Kuzmin