about_Command_Syntax
简短说明
介绍 PowerShell 中使用的语法关系图。
长说明
Get-Help 和 Get-Command cmdlet 显示语法关系图,以帮助你正确构造命令。 本文介绍如何解释语法关系图。
获取命令的语法
可通过两种方式获取命令的语法: Get-Help
和 Get-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>]
- 第一个参数集返回一个或多个随机数,并具有 Minimum、 Maximum 和 Count 参数。
- 第二个参数集从一组对象中返回随机选择的对象,并包括 InputObject 和 Count 参数。
- 第三个参数集具有 Shuffle 参数,该参数以随机顺序返回对象的集合,例如随机排列一组卡片。
- 所有参数集都具有 SetSeed 参数和公共参数。
这些参数集表明,可以在同一命令中使用 InputObject 和 Count 参数,但不能同时使用 Maximum 和 Shuffle 参数。
每个 cmdlet 还有一个默认参数集。 如果未指定参数集唯一的参数,则使用默认参数集。 例如,如果使用 Get-Random
不带参数,PowerShell 会假定你使用的是 RandomNumberParameterSet 参数集,并且它返回一个随机数。
语法图中的符号
语法关系图列出了命令名称、命令参数和参数值。
语法关系图使用以下符号:
连字符
-
指示参数名称。 在命令中,在参数名称前面键入连字符,不带干预空格,如语法图所示。例如,若要使用 的 Name 参数
Get-Command
,请键入:Get-Command -Name
。
尖括号
< >
表示占位符文本。 请勿在命令中键入尖括号或占位符文本。 相反,请将它替换为它描述的项。尖括号内的占位符标识参数采用的值的 .NET 类型。 例如,若要使用 cmdlet 的
Get-Command
Name 参数,请将 替换为<string[]>
一个或多个用逗号分隔的字符串 (,
) 。
[]
追加到 .NET 类型的括号表示参数可以接受该类型的一个或多个值。 以逗号分隔的列表的形式输入值。例如,cmdlet 的
New-Alias
Name 和 Value 参数各只采用一个字符串。New-Alias [-Name] <string> [-Value] <string>
New-Alias -Name MyAlias -Value mycommand.exe
但 Get-Process 的 Name 参数可以采用一个或多个字符串。
Get-Process [-Name] <string[]>
Get-Process -Name Explorer, Winlogon, Services
没有值的参数
某些参数不接受输入,因此它们没有参数值。 不带值的参数是 开关参数。 开关参数的使用方式与布尔值类似。 它们默认为
$false
。 使用 switch 参数时,该值设置为$true
。例如,的 ListImported 参数
Get-Command
是 switch 参数。 使用 ListImported 参数时,cmdlet 仅返回从当前会话中的模块导入的命令。Get-Command [-ListImported]
[ ]
参数周围的括号表示可选项。 参数及其值可以是可选的。 例如, 的 CommandType 参数Get-Command
及其值括在方括号中,因为它们都是可选的。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。
大括号
{}
表示“枚举”,它是参数的有效值集。大括号中的值用垂直条
|
分隔。 这些条形表示 独占 OR 选项,这意味着只能从大括号内列出的值集中选择一个值。例如,cmdlet 的
New-Alias
语法包括 Option 参数的以下值枚举:New-Alias -Option {None | ReadOnly | Constant | Private | AllScope}
大括号和垂直条指示可以为 Option 参数选择列出的任意一个值,例如
ReadOnly
或AllScope
。New-Alias -Option ReadOnly