ja-JP/about_Splatting.help.txt
|
TOPIC about_Splatting 簡単な説明 パラメータをまとめて変数に格納し、コマンドへ一括で渡す 「スプラッティング」を説明します。(PSHelpJaJP 日本語パッチ版) 詳細な説明 スプラッティングは、コマンドのパラメータをハッシュテーブルまたは配列に まとめ、@ 記号付きの変数で一括展開して渡す手法です。コマンド呼び出しが 長くなるのを防ぎ、再利用しやすくなります。 変数の参照に $ ではなく @ を使う点がポイントです。 ハッシュテーブルによるスプラッティング(名前付きパラメータ) 名前付きパラメータを渡す場合はハッシュテーブルを使います。 キーがパラメータ名、値がその引数になります。 $params = @{ Path = "C:\Logs" Filter = "*.log" Recurse = $true } Get-ChildItem @params 上は次の呼び出しと同じです。 Get-ChildItem -Path "C:\Logs" -Filter "*.log" -Recurse 配列によるスプラッティング(位置パラメータ) 位置パラメータを渡す場合は配列を使います。 $args = "C:\src\a.txt", "C:\dst\a.txt" Copy-Item @args # Copy-Item "C:\src\a.txt" "C:\dst\a.txt" と同じ スイッチパラメータの扱い -Recurse のようなスイッチは、ハッシュテーブルで $true / $false を指定して オン・オフを制御できます。条件によって付け外ししたいときに便利です。 $opt = @{ Recurse = $shouldRecurse } # $true なら有効、$false なら無効 Get-ChildItem C:\Logs @opt 注意 - @ で展開するため、コード内では @params のように記述します ($params ではありません)。 - 通常のパラメータとスプラッティングは併用できます。 Get-ChildItem @params -Force 関連項目 about_Functions about_Parameters about_Hash_Tables |