about_Command_Syntax

簡短描述

描述 PowerShell 中使用的語法圖表。

詳細描述

Get-HelpGet-Command Cmdlet 會顯示語法圖表,以協助您正確建構命令。 本文說明如何解譯語法圖表。

取得命令的語法

有兩種方式可以取得命令的語法: Get-HelpGet-Command

Get-Command

命令 Get-Command 可用來取得系統上任何命令的相關信息。 使用 Syntax 參數來取得命令的語法。

Get-Command Get-Command -Syntax
Get-Command [[-ArgumentList] <Object[]>] [-Verb <string[]>] [-Noun <string[]>]
 [-Module <string[]>] [-FullyQualifiedModule <ModuleSpecification[]>]
 [-TotalCount <int>] [-Syntax] [-ShowCommandInfo] [-All] [-ListImported]
 [-ParameterName <string[]>] [-ParameterType <PSTypeName[]>]
 [<CommonParameters>]

Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>]
 [-Module <string[]>] [-FullyQualifiedModule <ModuleSpecification[]>]
 [-CommandType <CommandTypes>] [-TotalCount <int>] [-Syntax] [-ShowCommandInfo]
 [-All] [-ListImported] [-ParameterName <string[]>]
 [-ParameterType <PSTypeName[]>] [-UseFuzzyMatching]
 [-FuzzyMinimumDistance <uint>] [-UseAbbreviationExpansion]
 [<CommonParameters>]

Get-Help

此命令 Get-Help 提供有關 PowerShell 命令的詳細資訊,包括語法、Cmdlet 和參數的詳細描述,以及範例。 輸出 Get-Help 命令的開頭是命令的簡短描述,後面接著語法。

Get-Help Get-Command

下列輸出已縮短,以將焦點放在語法描述上。

NAME
    Get-Command

SYNOPSIS
    Gets all commands.

SYNTAX

    Get-Command [[-Name] <System.String[]>] [[-ArgumentList] <System.Object[]>]
    [-All] [-CommandType {Alias | Function | Filter | Cmdlet | ExternalScript |
    Application | Script | Workflow | Configuration | All}]
    [-FullyQualifiedModule <Microsoft.PowerShell.Commands.ModuleSpecification[]>]
    [-ListImported] [-Module <System.String[]>] [-ParameterName <System.String[]>]
    [-ParameterType <System.Management.Automation.PSTypeName[]>]
    [-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>]
    [-UseAbbreviationExpansion] [-UseFuzzyMatching] [<CommonParameters>]

    Get-Command [[-ArgumentList] <System.Object[]>] [-All]
    [-FullyQualifiedModule <Microsoft.PowerShell.Commands.ModuleSpecification[]>]
    [-ListImported] [-Module <System.String[]>] [-Noun <System.String[]>]
    [-ParameterName <System.String[]>]
    [-ParameterType <System.Management.Automation.PSTypeName[]>]
    [-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>]
    [-Verb <System.String[]>] [<CommonParameters>]
...

的輸出 Get-Help 與的 Get-Command輸出稍有不同。 請注意 CommandType 參數語法的差異。 Get-Command 將參數類型 [CommandTypes] 顯示為列舉,同時 Get-Help 顯示列舉的可能值。

參數集

PowerShell 命令的參數會列在參數集中。 PowerShell 命令可以有一或多個參數集。 Cmdlet Get-Command 有兩個參數集,如先前範例所示。

某些 Cmdlet 參數對參數集而言是唯一的,其他參數則會出現在多個參數集中。 每個參數集都代表有效命令的格式。 參數集只包含可在命令中一起使用的參數。 當參數不能在同一個命令中使用時,它們會列在不同的參數集中。

例如, Get-Random Cmdlet 具有下列參數集:

$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>]
  • 第一個參數集會傳回一或多個隨機數,並具有 MinimumMaximumCount 參數。
  • 第二個參數集會從一組對象傳回隨機選取的物件,並包含 InputObjectCount 參數。
  • 第三個參數集具有 Shuffle 參數,會以隨機順序傳回物件的集合,例如隨機隨機洗牌組。
  • 所有參數集都有 SetSeed 參數和通用參數。

這些參數集顯示您可以在相同的命令中使用 InputObjectCount 參數,但您無法同時使用 MaximumShuffle 參數。

每個 Cmdlet 也都有預設參數集。 當您未指定參數集唯一的參數時,會使用預設參數集。 例如,如果您使用 Get-Random 不含參數,PowerShell 會假設您使用 RandomNumberParameterSet 參數集,並傳回隨機數。

語法圖表中的符號

語法圖表會列出命令名稱、命令參數和參數值。

語法圖表使用下列符號:

  • 連字元 - 表示參數名稱。 在命令中,在參數名稱前面輸入連字元,且不含插字空格,如語法圖表所示。

    例如,若要使用Get-CommandName 參數,請輸入:Get-Command -Name

  • 角括弧 < > 表示佔位元文字。 您不會在命令中輸入角括弧或佔位元文字。 相反地,您會將它取代為所描述的專案。

    角括弧內的佔位元元會識別參數採用之值的 .NET 類型。 例如,若要使用 Cmdlet 的 Get-Command Name 參數,請將 取代<string[]>為以逗號分隔的一或多個字串(,)。

  • []附加至 .NET 類型的括號表示參數可以接受該類型的一或多個值。 輸入值做為逗號分隔清單。

    例如,Cmdlet 的 New-Alias NameValue 參數只會各接受一個字串。

    New-Alias [-Name] <string> [-Value] <string>
    
    New-Alias -Name MyAlias -Value mycommand.exe
    

    但是 Get-ProcessName 參數可以接受一或多個字串。

    Get-Process [-Name] <string[]>
    
    Get-Process -Name Explorer, Winlogon, Services
    
  • 沒有值的參數

    某些參數不接受輸入,因此它們沒有參數值。 不含值的參數是 參數參數。 參數會像布爾值一樣使用。 它們預設為 $false。 當您使用 switch 參數時,值會設定為 $true

    例如,的 ListImported 參數 Get-Command 是 switch 參數。 當您使用 ListImported 參數時,Cmdlet 只會傳回從目前工作階段中的模組匯入的命令。

    Get-Command [-ListImported]
    
  • 參數 [ ] 周圍的括弧表示選擇性專案。 參數及其值可以是選擇性的。 例如,Get-Command CommandType 參數及其值會以括弧括住,因為它們都是選擇性的。

    Get-Command [-CommandType <CommandTypes>]
    

    參數名稱周圍的括弧,但不是參數值,表示參數名稱是選擇性的。 這些參數稱為位置參數。 參數值必須以正確的順序呈現,值才能系結至正確的參數。

    例如,針對 New-Alias Cmdlet,需要 Name 和 Value 參數值,但參數名稱-Name-Value是選擇性的。

    New-Alias [-Name] <string> [-Value] <string>
    
    New-Alias MyAlias mycommand.exe
    

    在每個參數集合中,參數會依位置順序顯示。 只有在您省略選擇性參數名稱時,命令中的參數順序才重要。 省略參數名稱時,PowerShell 會依位置和類型將值指派給參數。 如需參數位置的詳細資訊,請參閱 about_Parameters

  • {}大括弧表示「列舉」,這是參數的有效值集。

    大括弧中的值會以垂直線 |分隔。 這些橫條表示 獨佔或 選擇,這表示您只能從大括弧內所列的值集中選擇一個值。

    例如,Cmdlet 的New-Alias語法包含 Option 參數的下列值列舉:

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

    大括弧和垂直線表示您可以選擇Option參數的任何一個列出的值,例如 ReadOnlyAllScope

    New-Alias -Option ReadOnly
    

另請參閱