小编low*_*teq的帖子

在Powershell函数中处理管道和参数输入

我对在一个月的午餐中学习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

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

powershell ×1