如何使PowerShell函数的参数具有多值性?

时间:2014-07-09 03:51:59

标签: powershell

我有以下内容,我希望能够使用单台计算机或获取内容,并为列表中的每个项目执行每项操作,但不确定如何完成此操作

function Search-Items {
  param ([string]$Server, [string]$SearchPath, [string]$SearchTerm)
  gci \\$Server\$SearchPath -r | ? {$_.Name -match $SearchTerm}
}

尝试以下但没有得到任何东西

function Search-Items {
  param ([string]$Servers, [string]$SearchPath, [string]$SearchTerm)
  ForEach ($server in $Servers) {
    gci \\$Server\$SearchPath -r | ? {$_.Name -match $SearchTerm}
  }
}

我希望能够做到:

Search-Items -Servers $env:ComputerName

-OR -

Search-Items -Servers gc .\list.txt

[string]$Servers更改为[array[]]$Servers

1 个答案:

答案 0 :(得分:0)

以下是我如何使用它

function Search-Items {
  param ([array[]]$Servers, [string]$SearchPath, [string]$SearchTerm)
  ForEach ($server in $Servers) {
    gci \\$server\$SearchPath -r | ? {$_.Name -match $SearchTerm}
  }
}