PowerShell: コマンドレットのオンラインヘルプの見方

コマンドレットのヘルプを見る場合、 Get-Helpコマンドレットが使えます。
「Get-Help コマンドレット名」と入力すると ローカルにあるヘルプ情報を表示し、
Get-Help コマンドレット名 -Online」と入力すると ブラウザが起動してオンラインヘルプを参照できます。 ヘルプの見やすさの点ではオンラインヘルプの方がおすすめです。

例として「Get-ChildItem」のオンラインヘルプにある パラメータの記述を見てみます。

オンラインヘルプ

Syntax

Get-ChildItem
   [[-Path] <string[]>]
   [[-Filter] <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-FollowSymlink]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]

まずは1番目のパラメータを見てみます。

[[-Path] <string[]>]

-Pathがパラメータ名で<string[]>がパラメータ値です。 stringの後に角括弧[]があるかどうかで単数・複数と意味が異なります。 <string>とある場合は単一の文字列ですが、 <string[]>とある場合は複数の文字列が指定可能です。

下の赤字部分に注目してください。 一番外側の角括弧[]と-Pathを囲む角括弧[]は そのパラメータが省略可能であることを意味します。

[[-Path] <string[]>]

次の2つの指定方法は同じ意味になります。

Get-ChildItem -Path D:\test

# -Pathを省略
Get-ChildItem D:\test

次は2番目のパラメータです。

[[-Filter] <string>]

stringの後に角括弧[]がないので単一の文字列がパラメータ値となります。 1番目のパラメータと同じく一番外側の角括弧[]と-Filterを囲む角括弧[]は 省略可能を意味します。

次に5番目のパラメータを見てみます。

[-Recurse]

-Recurseはパラメータ名のみでパラメータ値がありません。 このようなパラメータをスイッチパラメータと言います。 -Recurseと記述した場合は機能がONとなり、 記述しない場合は機能がOFFとなります。 -Recurseを囲む 角括弧[]はこのパラメータが省略可能なことを意味します。

次は6番目のパラメータです。

[-Depth <uint32>]

uint32は符号なし整数です。 [-Path]や[-Filter]と違って-Depth自体は角括弧[]で囲まれていないため、 このパラメータを指定する場合はパラメータ名の-Depthを必ず記述する必要があります。

# 正しい指定方法
Get-ChildItem -Depth 2


# 間違った指定方法 -Depth省略
Get-ChildItem 2  # エラー

まとめ

コマンドレットのヘルプを見たい場合、 「Get-Help コマンドレット名 -Online」と入力すると ブラウザが起動してオンラインヘルプが見れます。

パラメータの指定方法は一見ややこしく見えますが、 パラメータ名、パラメータ値、 省略可能な角括弧[]、OF/OFFを切り替えるスイッチパラメータ、 複数のパラメータ値などの意味がわかると 難しくありません。

PowerShell