请考虑以下代码段:
$foo = "b a r"
Some-Cmdlet -MyParam $foo
我想将b a r
作为-MyParam
参数传递。它显然不起作用,因为调用将评估为:
Some-Cmdlet -MyParam b a r
和空格会将参数拆分为3个单独的字符。我可以添加这样的引号:
Some-Cmdlet -MyParam '"'+$foo+'"'
但我想知道是否有一种方法可以在扩展变量时添加引号而不连接它们。换句话说:不使用+
。可能是这样的:
Some-Cmdlet -MyParam "\"$foo\""
让\
成为转义运营商。
答案 0 :(得分:0)
您对字符串解释的假设不正确。如果传递一个字符串,它将保持字符串。
Function '/a r g 1'
"$($Args[0])"
> /a r g 1