2011年4月1日金曜日

◆パラメータとパイプライン両方の入力に対応した関数を作る2

PowerShell: ◆パラメータとパイプライン両方の入力に対応した関数を作るでは[Parameter(ValueFromPipeline=$True)]属性を使ったが、プロパティ値でマッピングするときはこれを[Parameter(ValueFromPipelineByPropertyName=$True)]に変更してあげれば良い。

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027

function ftest{
 
#[CmdletBinding()]
  param
(
   
[Parameter(ValueFromPipelineByPropertyName=$True)]
    $name
  )
 
 
process
{
 
   
function proc($name
) {
     
Write-Host "arg1 = $name"
    }
   
   
if($name.
count){
     
$name | %{proc $_
}
    }
else
{
     
proc $name
    }
   
  }
}


"■ Param Input"
ftest (dir)

"■ PipeLine Input"
dir | ftest

0 件のコメント:

コメントを投稿