PowerShell 読みやすいコーディング技法(スプラッティングの活用)

PowerShellカテゴリを表すパンダのイラスト PowerShell

スプラッティングについて

 スプラッティングとは、パラメーター値のコレクションを1つの単位としてコマンドに渡す方法です。PowerShellは、コマンドパラメーターを使用して、コレクション内の各値を関連付けます。スプラッティングパラメーターの値は、標準の変数と同様に名前付きのスプラッティング変数に格納されますが、ドル記号($)ではなくアットマーク(@)で始まります。アットマーク(@)は、単一の値ではなく、値のコレクションを渡すことをPowerShellに指示します。

 スプラッティングを使用すると、コマンドが短く、読みやすくなります。さまざまなコマンド呼び出しでスプラッティング値を再利用し、スプラッティングを使用して、$PSBoundParameters自動変数から他のスクリプトや関数にパラメーター値を渡すことができます。

Windows PowerShell 3.0 以降では、スプラッティングを使用してコマンドのすべてのパラメーターを表すこともできます。

 スプラッティングについて – PowerShell | Microsoft Learn より

スプラッティングを使うと、引数が長くて読みにくいコマンドを読みやすくする(可読性を高める)ことができる。

具体例(HashTable方式)

ハッシュテーブルの構文で、パラメーターの名前と値のペアを指定する。

$param = @{
 Path = "c:\"
 Depth = 1
 Recurse = $true
}

Get-ChildItem @param

Recurse のような値なしパラメータ(スイッチパラメータ)には $true を指定する。

これは、以下の1ライナーで記載した場合と等価になっている。

Get-ChildItem -Path "c:\" -Depth 1 -Recurse

ファイル一覧を取得する場合、ファイルサーバー上の特定のフォルダー階層が非常に深くて長くなる場合も多い。

そんな時、1ライナーでコマンドを作成すると可読性が悪く、メンテナンスもしづらい。

スプラッティングを活用すると、このように読みやすいコードが作成できる。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月12日

  • 変更Microsoft DocsのリンクURLを最新のlearn.microsoft.comドメインに変更しました。
  • 追加比較用のPowerShellコードブロックに言語指定(powershell)を追加しました。

文書情報

記事タイトル
PowerShell 読みやすいコーディング技法(スプラッティングの活用)
作成日
更新日
Source URL
https://papanda925.com/?p=1653

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました