2011年9月20日火曜日

◆パラメータをフォワードする

Forwarding Parameters - Power Tips - Powershell.com Powershell Scripts, Tips and ResourcesにいかにもTipsというのがあったので紹介。

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018

function dir-name($path, $include,$erroraction) {
Get-ChildItem -Path $path -Include $include -ErrorAction $erroraction
}

function dir-name2($path, $include,$erroraction) {
Get-ChildItem @PSBoundParameters
}

function dir-name3($path, $include,$erroraction) {
Get-ChildItem @PSBoundParameters -Exclude "d*"
}

"dir-name"
dir-name ".\*" "*.accdb" 
"continue"
"dir-name2"

dir-name2 ".\*" "*.accdb" 
"continue"
"dir-name3"

dir-name3 ".\*" "*.accdb" "continue"

image

関数の引数で受け取ったパラメータを内部で実行するコマンドレットのパラメータにそのまま渡す例である。

dir-name関数はごく普通に指定した場合。

dir-name2では分配演算子を使って$PSBoundParameters自動変数をコマンドレットに引き渡している。
$PSBoundParameters自動変数は関数に渡された引数が連想配列で保持されている。

パラメーターを追加して実行する場合はdir-name3の様にすれば良い。

0 件のコメント:

コメントを投稿