about_Command_Syntax

簡単な説明

PowerShell で使用される構文図について説明します。

長い説明

Get-Help コマンドレットと Get-Command コマンドレットには、コマンドを正しく構築するのに役立つ構文図が表示されます。 このトピックでは、構文図を解釈する方法について説明します。

構文図

コマンド構文図の各段落は、コマンドの有効な形式を表します。

コマンドを作成するには、左から右の構文図に従います。 省略可能なパラメーターの中から を選択し、プレースホルダーの値を指定します。

PowerShell では、構文図に次の表記が使用されます。

<command-name> -<Required Parameter Name> <Required Parameter Value Type>
 [-<Optional Parameter Name> <Optional Parameter Value Type>]
 [-<Optional Switch Parameters>]
 [-<Optional Parameter Name>] <Required Parameter Value Type>

Get-Helpは、New-Alias コマンドレットの次の構文を示しています。

New-Alias [-Name] <String> [-Value] <String> [-Description <String>] [-Force]
 [-Option {None | ReadOnly | Constant | Private | AllScope | Unspecified}]
 [-PassThru] [-Scope <String>] [-Confirm] [-WhatIf] [<CommonParameters>]

構文は読みやすくするために大文字ですが、PowerShell では大文字と小文字は区別されません。

構文図には、次の要素があります。

[コマンド名]

コマンドは常に、 などの New-Aliasコマンド名で始まります。 コマンド名またはそのエイリアス (たとえば、 の "gcm" ) を Get-Command入力します。

パラメーター

コマンドのパラメーターは、コマンドの動作を決定するオプションです。 一部のパラメーターは、コマンドへのユーザー入力として値を受け取ります。

たとえば、 コマンドには Get-HelpName パラメーターがあり、ヘルプを表示するトピックの名前を指定できます。 トピック名は Name パラメーターの 値です。

PowerShell コマンドでは、パラメーター名は常にハイフンで始まります。 ハイフンは、コマンド内の項目がパラメーター名であることを PowerShell に通知します。

たとえば、 の New-AliasName パラメーターを使用するには、次のように入力します。New-Alias -Name

パラメーターは必須または省略可能です。 構文図では、省略可能な項目は角かっこ []で囲まれています。

パラメーターの詳細については、「 about_Parameters」を参照してください。

パラメーター値

パラメーター値は、パラメーターが受け取る入力です。 Windows PowerShellは Microsoft .NET Frameworkに基づいているため、パラメーター値は構文図で .NET 型によって表されます。

たとえば、 の Name パラメーター Get-Help は"String" 値を受け取ります。これは、1 つの単語や引用符で囲まれた複数の単語などのテキスト文字列です。

New-Alias [-Name] <string>

パラメーター値の .NET 型は山かっこ <> で囲まれており、コマンドで入力したリテラルではなく、値のプレースホルダーであることを示します。

パラメーターを使用するには、.NET 型プレースホルダーを、指定した .NET 型を持つオブジェクトに置き換えます。

たとえば、 Name パラメーターを使用するには、次のような文字列を入力 -Name します。 -Name MyAlias

値のないパラメーター

一部のパラメーターは入力を受け入れないので、パラメーター値がありません。 値のないパラメーターは、オン/オフ スイッチのように機能するため、 スイッチ パラメーター と呼ばれます。 それらを含める (オン) か、コマンドから省略 (オフ) します。

switch パラメーターを使用するには、パラメーター名の前にハイフンを付けて入力します。

たとえば、コマンドレットの WhatIf パラメーターを New-Alias 使用するには、次のように入力します New-Alias -WhatIf

パラメーター セット

コマンドのパラメーターは、パラメーター セットに一覧表示されます。 パラメーター セットは、構文図の段落のようになります。

コマンドレットには New-Alias 1 つのパラメーター セットがありますが、多くのコマンドレットには複数のパラメーター セットがあります。 一部のコマンドレット パラメーターはパラメーター セットに固有であり、他のパラメーター セットは複数のパラメーター セットに表示されます。 各パラメーター セットは、有効なコマンドの形式を表します。 パラメーター セットには、コマンドで一緒に使用できるパラメーターのみが含まれます。 同じコマンドでパラメーターを使用できない場合は、別々のパラメーター セットに表示されます。

たとえば、 Get-Random コマンドレットには次のパラメーター セットがあります。

$cmd = Get-Command Get-Random
$cmd.ParameterSets |
    Select-Object Name, IsDefault, @{n='Parameters';e={$_.ToString()}} |
    Format-Table -Wrap
Name                       IsDefault Parameters
----                       --------- ----------
RandomNumberParameterSet        True [[-Maximum] <Object>] [-SetSeed <int>]
                                     [-Minimum <Object>] [-Count <int>]
                                     [<CommonParameters>]
RandomListItemParameterSet     False [-InputObject] <Object[]> [-SetSeed <int>]
                                     [-Count <int>] [<CommonParameters>]
ShuffleParameterSet            False [-InputObject] <Object[]> -Shuffle
                                     [-SetSeed <int>] [<CommonParameters>]

最初のパラメーター セットは、1 つ以上の乱数を返し、MinimumMaximum、Count の各パラメーターを持っています。 2 番目のパラメーター セットは、一連のオブジェクトからランダムに選択されたオブジェクトを返し、 InputObject パラメーターと Count パラメーターを含みます。 3 番目のパラメーター セットには、カードのデッキをシャッフルするなどのランダムな順序でオブジェクトのコレクションを返す シャッフル パラメーターがあります。 すべてのパラメーター セットには 、SetSeed パラメーターと共通パラメーターがあります。

これらのパラメーター セットは、同じコマンドで InputObject パラメーターと Count パラメーターを使用できることを示しますが、同じコマンドで Maximum パラメーターと Shuffle パラメーターを使用することはできません。

使用するパラメーター セットを指定するには、そのパラメーター セット内のパラメーターを使用します。 ただし、すべてのコマンドレットには既定のパラメーター セットもあります。 既定のパラメーター セットは、パラメーター セットに固有のパラメーターを指定しない場合に使用されます。 たとえば、パラメーターなしで を使用Get-Randomする場合、Windows PowerShellは RandomNumberParameterSet パラメーター セットを使用していると想定し、乱数を返します。

構文図の記号

構文図には、コマンド名、コマンド パラメーター、およびパラメーター値が一覧表示されます。 また、シンボルを使用して、有効なコマンドを構築する方法を示します。

構文図では、次の記号を使用します。

  • ハイフン - はパラメーター名を示します。 コマンドで、パラメーター名の直前にハイフンを入力します。構文図に示すように、スペースを間に入れないでください。

    たとえば、 の Name パラメーター New-Aliasを使用するには、「」と入力します New-Alias -Name

  • 山かっこはプレースホルダー テキストを <> 示します。 コマンドに山かっこやプレースホルダー テキストを入力しません。 代わりに、説明する項目に置き換えます。

    山かっこ内のプレースホルダーは、パラメーターが受け取る値の .NET 型を識別します。 たとえば、コマンドレットの Name パラメーターを New-Alias 使用するには、 を 1 つの単語または引用符で囲まれた単語のグループである文字列に置き換えます <string>

  • パラメーターの角かっこは [] 、省略可能な項目を示します。 パラメーターとその値は省略可能、または必須パラメーターの名前は省略可能です。

    たとえば、 の Description パラメーター New-Alias とその値は、どちらも省略可能であるため、角かっこで囲まれます。

    角かっこは 、Name パラメーターの値は必須ですが、パラメーター名 -Nameは省略可能であることを示します。

    各パラメーター セットでは、パラメーターは位置順に表示されます。 コマンド内のパラメーターの順序は、省略可能なパラメーター名を省略した場合にのみ重要です。 パラメーター名を省略すると、PowerShell は位置と型によってパラメーターに値を割り当てます。 パラメーターの位置の詳細については、「 about_Parameters」を参照してください。

  • [].NET 型に追加された角かっこは、パラメーターがその型の 1 つ以上の値を受け取ることができることを示します。 値をコンマ区切りリストとして入力します。

    たとえば、コマンドレットの Name パラメーターは文字列を New-Alias 1 つだけ受け取ります。

    New-Alias [-Name] <string>
    
    New-Alias -Name MyAlias
    

    ただし、Get-ProcessName パラメーターは、1 つ以上の文字列を受け取ることができます。

    Get-Process [-Name] <string[]>
    
    Get-Process -Name Explorer, Winlogon, Services
    
  • 中かっこは {} 、パラメーターの有効な値のセットである "列挙" を示します。

    中かっこ内の値は、垂直バー で区切られます |。 これらのバーは 排他的 OR の選択肢を示します。つまり、中かっこ内に一覧表示されている値のセットから 1 つの値のみを選択できます。

    たとえば、 コマンドレットの構文 New-Alias には、 Option パラメーターの次の値の列挙が含まれています。

    New-Alias -Option {None | ReadOnly | Constant | Private | AllScope}
    

    中かっこと縦棒は、"ReadOnly" や "AllScope" など、 Option パラメーターに一覧表示されている値のいずれかを選択できることを示します。

    New-Alias -Option ReadOnly
    

省略可能な項目

省略可能な項目を角かっこで [] 囲みます。 たとえば、コマンドレットの構文の New-Alias 説明では、 Scope パラメーターは省略可能です。 これは、パラメーター名と型を角かっこで囲んで構文で示されています。

New-Alias [-Scope <string>]

次の例はどちらも、 コマンドレットの New-Alias 正しい使用例です。

New-Alias -Name utd -Value Update-TypeData
New-Alias -Name utd -Value Update-TypeData -Scope Global

パラメーター名は、そのパラメーターの値が必要な場合でも省略可能です。 これは、コマンドレットの次の例 New-Alias のように、パラメーター名を角かっこで囲んで構文で示しますが、パラメーターの型は示しません。

New-Alias [-Name] <string> [-Value] <string>

次のコマンドは、 コマンドレットを New-Alias 正しく使用します。 コマンドによって同じ結果が生成されます。

New-Alias -Name utd -Value Update-TypeData
New-Alias -Name utd Update-TypeData
New-Alias utd -Value Update-TypeData
New-Alias utd Update-TypeData

パラメーター名が型指定されたステートメントに含まれていない場合、Windows PowerShellは引数の位置を使用して値をパラメーターに割り当てようとします。

次の例は完全ではありません。

New-Alias utd

このコマンドレットには 、Name パラメーターと Value パラメーターの両方の 値が 必要です。

構文の例では、角かっこは、.NET Framework型への名前付けとキャストにも使用されます。 このコンテキストでは、角かっこは要素が省略可能であることを示しません。

こちらもご覧ください