PowerShell - スイッチパラメータとは

PowerShellのコマンドレットのパラメータの中でも、 パラメータ名を指定するだけで機能が有効になるものを 「スイッチパラメータ」と言います。

通常、パラメータにはパラメータ名とパラメータ値がありますが、 スイッチパラメータはパラメータ名を指定するだけです。 スイッチのON/OFFを切り替えるのと同じように、 機能のON/OFFを切り替えられます。

例を挙げると、

Get-ChildItem -Recurse

-Recurseがスイッチパラメータです。 -Recurseを指定することで再帰的に子アイテムを取得します。 -Recurseが無い場合は再帰的には取得されません。

Get-Help -Name コマンド名 -Online

-Onlineがスイッチパラメータです。 -Onlineを指定すると、 ブラウザでオンラインマニュアルが表示されます。 -Onlineが無い場合はPowerShellコンソール上に表示されます。

スイッチパラメータの見分け方

パラメータがスイッチパラメータかどうかを見分けるのは簡単です。 マニュアルを見た時に [-パラメータ名] となっているのがスイッチパラメータです。

例として、オンラインマニュアルから Get-ChildItemコマンドレットのパラメータの一部を見てみます。

Get-ChildItem
   [[-Path] <string[]>]
   [[-Filter] <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]

上記の中で、[-パラメータ名]となっている -Recurse、-Force、-Nameがスイッチパラメータです。 それ以外のパラメータはパラメータ名の後にパラメータ値があるので違います。