PowerShell函数参数为何合并?如何正确传递多参数?
PowerShell函数参数传递问题解答
1. 问题原因
PowerShell的函数调用逻辑和C#、Java这类语言不同,你写的SomeFunction("test","test2")里,括号内的"test","test2"会被PowerShell解析成一个Object数组,这个数组会被当作单个参数传给第一个形参$arg1,第二个形参$arg2因为没接收到对应值,自然就变成$null了。
简单来说:PowerShell里调用函数时,括号不是用来包裹多参数的,空格才是参数的分隔符。
2. 修复方法
有两种常用的正确写法:
- 用空格直接分隔参数(符合PowerShell原生习惯,推荐使用):
SomeFunction "test" "test2" - 使用命名参数传值(参数较多时更清晰,能避免参数顺序混乱):
SomeFunction -arg1 "test" -arg2 "test2"
内容的提问来源于stack exchange,提问作者pf12345678910
相关产品推荐
相关产品推荐

