关于命令语法
简短说明
介绍 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>
字符串,该字符串是一个单词或一组用引号括起来的单词。方括号
[ ]
表示可选项。 参数及其值可以是可选的,也可以是可选参数的名称。例如, 的
New-Alias
Description 参数及其值括在括号中,因为它们都是可选的。[-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
大括号
{}
指示“枚举”,它是参数的有效值集。大括号中的值用竖线
|
分隔。 这些条形表示“排他或”选项,这意味着只能从大括号内列出的值集中选择一个值。例如,cmdlet 的
New-Alias
语法包括 Option 参数的以下值枚举:-Option {None | ReadOnly | Constant | Private | AllScope}
大括号和垂直条指示可以为 Option 参数选择列出的任意一个值,例如“ReadOnly”或“AllScope”。
-Option ReadOnly
可选项
括号将 []
可选项括起来。 例如,在 New-Alias
cmdlet 语法说明中, 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类型。 在此上下文中,括号并不表示元素是可选的。