我对在一个月的午餐中学习PowerShell一书中看到的东西感到困惑.在第21章中,当作者讨论通过参数绑定或管道接受输入的函数时,他给出了两种模式.
第一个如下
function someworkerfunction {
# do some work
}
function Get-SomeWork {
param ([string[]]$computername)
BEGIN {
$usedParameter = $False
if($PSBoundParameters.ContainsKey('computername')) {
$usedParameter = $True
}
}
PROCESS {
if($usedParameter) {
foreach($computer in $computername) {
someworkerfunction -computername $comptuer
}
} else {
someworkerfunction -comptuername $_
}
}
END {}
}
Run Code Online (Sandbox Code Playgroud)
第二个是这样的
function someworkerfunction {
# do stuff
}
function Get-Work {
[CmdletBinding()]
param(
[Parameter(Mandatory=$True,
ValueFromPipelineByPropertyName=$True)]
[Alias('host')]
[string[]]$computername
)
BEGIN {}
PROCESS {
foreach($computer in $computername) {
someworkerfunction -comptuername $computer
} …Run Code Online (Sandbox Code Playgroud) powershell ×1