括号Powershell函数
如何使用带括号的PowerShell中的参数调用函数。
我以这个function为例
function Greet([string]$name , [int]$times) { for ([int]$i = 1; $i -le $times;$i++) { Write-Host Hiiii $name } }
如果我使用Greet Ricardo 5
或Greet "Ricardo" 5
作品调用函数。 但是当我使用Greet ("Ricardo",5)
或者Greet("Ricardo" ; 5)
它失败了。
哪里不对?
函数的行为与cmdlet类似。 也就是说,你不要inputdir(c:\ temp)。 函数同样将参数作为空间分隔和像cmdlet一样,支持位置,命名和可选参数,例如:
Greet Recardo 5 Greet -times 5 -name Ricardo
PowerShell使用()允许你指定如下的expression式:
function Greet([string[]]$names, [int]$times=5) { foreach ($name in $names) { 1..$times | Foreach {"Hi $name"} } } Greet Ricardo (1+4) Great Ricardo # Note that $times defaults to 5
你也可以使用逗号分隔列表简单地指定数组,例如:
Greet Ricardo,Lucy,Ethyl (6-1)
所以当你传入类似于("Ricardo",5)
东西时,这个值就是一个包含两个元素"Ricardo"
和5
的单个参数值。 这将被传递给$name
参数,但是那么$times
参数将没有值。
唯一一次使用括号参数列表是在调用.NET方法时,例如:
"Hello World".Substring(6, 3)