这是一个非常简单的示例脚本:
function fun () { "AAA $args ZZZ" }
fun a b c
fun a - b
fun a -- b
fun a '--' b
fun a --- b
我得到的结果是:
AAA a b c ZZZ
AAA a - b ZZZ
AAA a b ZZZ
AAA a -- ZZZ
AAA a --- b ZZZ
我显然需要逃脱双击。为什么呢?
我正在为一套脚本编写一个powershell包装器,其中一些脚本为“ - ”赋予特定含义。我如何通过未经修改的传递?
答案 0 :(得分:6)
- 被认为是一个特殊的“end-ofparameters”参数。
来自Bruce Payette的Windows PowerShell in Action:
引号使参数binder不会将引用的字符串视为参数。 另一种不经常使用的方法是使用特殊的“最终参数” 参数,背靠背两个连字符( - )。
此序列之后的所有内容都将被视为参数,即使它看起来像参数。例如,使用 - 您也可以不使用引号写出字符串-InputObject:
PS (3) > Write-Output -- -InputObject
将导致-inputobject作为输出。