關於命令語法
簡短描述
描述 PowerShell 中使用的語法圖表。
詳細描述
Get-Help 和 Get-Command Cmdlet 會顯示語法圖表,以協助您正確建構命令。 本主題說明如何解譯語法圖表。
語法圖表
命令語法圖表中的每個段落都代表命令的有效形式。
若要建構命令,請遵循從左至右的語法圖表。 從選擇性參數中選取 ,並提供佔位元的值。
PowerShell 會針對語法圖表使用下列表示法。
<command-name> -<Required Parameter Name> <Required Parameter Value>
[-<Optional Parameter Name> <Optional Parameter Value>]
[-<Optional Switch Parameters>]
[-<Optional Parameter Name>] <Required Parameter Value>
以下是 New-Alias Cmdlet 的語法。
New-Alias [-Name] <string> [-Value] <string> [-Description <string>]
[-Force] [-Option {None | ReadOnly | Constant | Private | AllScope}]
[-PassThru] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonParameters>]
語法的大小寫為可讀性,但 PowerShell 不區分大小寫。
語法圖表具有下列元素。
命令名稱
命令一律以命令名稱開頭,例如 New-Alias
。 輸入命令名稱或其別名,例如的 Get-Command
“gcm”。
參數
命令的參數是決定命令用途的選項。 某些參數會採用「值」,這是命令的用戶輸入。
例如, Get-Help
命令具有 Name 參數,可讓您指定顯示說明的主題名稱。 主題名稱是 Name 參數的值。
在 PowerShell 命令中,參數名稱一律以連字元開頭。 連字元會告訴 PowerShell 命令中的項目是參數名稱。
例如,若要使用的 New-Alias
Name 參數,請輸入下列命令:
-Name
參數可以是必要或選擇性的。 在語法圖表中,選擇性專案會以方括弧 [ ]
括住。
如需參數的詳細資訊,請參閱 about_Parameters。
參數值
參數值是參數接受的輸入。 因為 Windows PowerShell 是以 Microsoft .NET Framework 為基礎,所以參數值會以其 .NET 類型在語法圖表中表示。
例如,的 Get-Help
Name 參數會採用 「String」 值,這是文字字串,例如單字或多個以引號括住的單字。
[-Name] <string>
參數值的 .NET 類型會以角括弧 < >
括住,表示它是值的佔位符,而不是您在命令中輸入的常值。
若要使用 參數,請將 .NET 類型佔位元取代為具有指定 .NET 型別的物件。
例如,若要使用 Name 參數,請輸入 “-Name”,後面接著字串,如下所示:
-Name MyAlias
沒有值的參數
某些參數不接受輸入,因此它們沒有參數值。 不含值的參數稱為「切換參數」,因為它們的運作方式就像開啟/關閉參數一樣。 您可以在) 中包含它們 (,或省略它們 (從命令) 。
若要使用 switch 參數,只要輸入參數名稱,前面會加上連字元。
例如,若要使用 Cmdlet 的 New-Alias
WhatIf 參數,請輸入下列命令:
-WhatIf
參數集
命令的參數會列在參數集中。 參數集看起來像語法圖表的段落。
Cmdlet New-Alias
有一個參數集,但許多 Cmdlet 都有多個參數集。 有些 Cmdlet 參數對參數集而言是唯一的,有些則出現在多個參數集中。 每個參數集都代表有效命令的格式。 參數集只包含可在命令中一起使用的參數。 如果參數不能用在相同的命令中,它們會出現在不同的參數集中。
例如, Get-Random Cmdlet 具有下列參數集:
Get-Random [[-Maximum] <Object>] [-Minimum <Object>] [-SetSeed <int>]
[<CommonParameters>]
Get-Random [-InputObject] <Object[]> [-Count <int>] [-SetSeed <int>]
[<CommonParameters>]
傳回隨機數的第一個參數集具有 Minimum 和 Maximum 參數。 第二個參數集會從一組對象傳回隨機選取的物件,包括 InputObject 和 Count 參數。 這兩個參數集都有 SetSeed 參數和一般參數。
這些參數集表示您可以在相同的命令中使用 InputObject 和 Count 參數,但不能在同一個命令中使用 Maximum 和 Count 參數。
您可以使用該參數集中的參數,指出您想要使用的參數集。
不過,每個 Cmdlet 也有預設參數集。 當您未指定參數集唯一的參數時,會使用預設參數集。 例如,如果您使用Get-Random
不含參數,Windows PowerShell 假設您使用的是 Number 參數集,並傳回隨機數。
在每個參數集中,參數會以位置順序顯示。 只有在您省略選擇性參數名稱時,命令中的參數順序才重要。 省略參數名稱時,PowerShell 會依位置和類型將值指派給參數。 如需參數位置的詳細資訊,請參閱 about_Parameters
。
語法圖表中的符號
語法圖表會列出命令名稱、命令參數和參數值。 它也會使用符號來示範如何建構有效的命令。
語法圖表使用下列符號:
連字元
-
表示參數名稱。 在命令中,在參數名稱前面立即輸入連字元,不含插入空格,如語法圖表所示。例如,若要使用的
New-Alias
Name 參數,請輸入:-Name
角括弧
<>
表示佔位元文字。 您不會在命令中輸入角括弧或佔位元文字。 相反地,您會將它取代為所描述的專案。角括弧可用來識別參數所接受值的 .NET 類型。 例如,若要使用 Cmdlet 的
New-Alias
Name 參數,請將 取代<string>
為字元串,這是單字或以引號括住的一組單字。[ ]
方括弧表示選擇性專案。 參數及其值可以是選擇性的,或者必要參數的名稱可以是選擇性的。例如, 的 Description 參數
New-Alias
及其值會以括弧括住,因為它們都是選擇性的。[-Description <string>]
方括弧也表示需要 Name 參數值
<string>
,但參數名稱 「Name」 是選擇性的。[-Name] <string>
附加至 .NET 類型的右括弧和左括弧
[]
表示參數可以接受該類型的一或多個值。 以逗號分隔的清單方式輸入值。例如,Cmdlet 的
New-Alias
Name 參數只接受一個字串,但 Get-Process 的 Name 參數可以接受一或多個字串。New-Alias [-Name] <string> New-Alias -Name MyAlias
Get-Process [-Name] <string[]> Get-Process -Name Explorer, Winlogon, Services
{}
大括弧表示「列舉」,這是參數的有效值集合。大括弧中的值會以垂直線
|
分隔。 這些橫條表示「獨佔 OR」選擇,這表示您只能從大括弧內所列的值集中選擇一個值。例如,Cmdlet 的
New-Alias
語法包含 Option 參數的下列值列舉:-Option {None | ReadOnly | Constant | Private | AllScope}
大括弧和垂直橫條表示您可以選擇 Option 參數的任何一個列出的值,例如 “ReadOnly” 或 “AllScope”。
-Option ReadOnly
選擇性專案
方括弧會 []
括住選擇性專案。 例如,在 Cmdlet 語法描述中 New-Alias
, Scope 參數是選擇性的。 這在語法中會以參數名稱和類型周圍的括弧表示:
[-Scope <string>]
下列兩個範例都是 Cmdlet 的正確用法 New-Alias
:
New-Alias -Name utd -Value Update-TypeData
New-Alias -Name utd -Value Update-TypeData -Scope Global
即使需要該參數的值,參數名稱也可以是選擇性的。 這在語法中會以參數名稱周圍的括弧表示,但不是參數類型,如 Cmdlet 中的 New-Alias
這個範例所示:
[-Name] <string> [-Value] <string>
下列命令會正確使用 New-Alias
Cmdlet。 命令會產生相同的結果。
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
此 Cmdlet 需要 Name 和 Value 參數的值。
在語法範例中,括號也用於命名和轉換成 .NET Framework 類型。 在此內容中,方括弧不表示元素是選擇性的。