当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 关于命令语法

作者:精品下载站 日期:2024-12-14 02:23:54 浏览:15 分类:玩电脑

关于命令语法


简短描述

描述 PowerShell 中使用的语法图。

详细描述

Get-Help 和 Get-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 命令可以具有一个或多个参数集。 Get-Command cmdlet 有两个参数集,如前面的示例所示。

某些 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>]
  • 第一个参数集返回一个或多个随机数,并具有最小值最大值计数参数。
  • 第二个参数集返回从一组对象中随机选择的对象,并包括 InputObjectCount 参数。
  • 第三个参数集具有 Shuffle 参数,该参数以随机顺序返回对象集合,就像洗牌一样。
  • 所有参数集都有SetSeed参数和公共参数。

这些参数集显示您可以在同一命令中使用 InputObjectCount 参数,但不能使用 Maximum >将参数随机排列在一起。

每个 cmdlet 还具有默认参数集。当您未指定参数集特有的参数时,将使用默认参数集。例如,如果您使用不带参数的 Get-Random,PowerShell 会假定您使用的是 RandomNumberParameterSet 参数集,并且它会返回一个随机数。

语法图中的符号

语法图列出了命令名称、命令参数和参数值。

语法图使用以下符号:

  • 连字符 - 表示参数名称。在命令中,在参数名称前键入连字符,中间不留空格,如语法图所示。

    例如,要使用 Get-CommandName 参数,请键入:Get-Command -Name

  • 尖括号 < > 表示占位符文本。您不必在命令中键入尖括号或占位符文本。相反,您可以将其替换为它所描述的项目。

    尖括号内的占位符标识参数采用的值的 .NET 类型。例如,要使用 Get-Command cmdlet 的 Name 参数,请将 <string[]> 替换为一个或多个分隔的字符串用逗号 (,)。

  • 附加到 .NET 类型的方括号 [] 表示该参数可以接受该类型的一个或多个值。输入以逗号分隔的列表形式的值。

    例如,New-Alias cmdlet 的 NameValue 参数各仅采用一个字符串。

    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。当您使用开关参数时,该值将设置为 $true

    例如,Get-CommandListImported 参数就是一个开关参数。当您使用 ListImported 参数时,cmdlet 仅返回从当前会话中的模块导入的命令。

    Get-Command [-ListImported]
    
  • 参数周围的括号 [ ] 表示可选项目。参数及其值可以是可选的。例如,Get-CommandCommandType 参数及其值括在方括号中,因为它们都是可选的。

    Get-Command [-CommandType <CommandTypes>]
    

    参数名称(而不是参数值)两边的括号表示参数名称是可选的。这些参数称为位置参数。参数值必须以正确的顺序呈现,以便将值绑定到正确的参数。

    例如,对于 New-Alias cmdlet,NameValue 参数值是必需的,但参数名称 -Name -Value 是可选的。

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

    在每个参数集中,参数按位置顺序出现。仅当省略可选参数名称时,命令中参数的顺序才重要。当省略参数名称时,PowerShell 会按位置和类型为参数分配值。有关参数位置的更多信息,请参阅 about_Parameters。

  • 大括号 {} 表示“枚举”,它是参数的一组有效值。

    大括号中的值由竖线 | 分隔。这些条表示“异或”选择,这意味着您只能从大括号内列出的一组值中选择一个值。

    例如,New-Alias cmdlet 的语法包括 Option 参数的以下值枚举:

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

    大括号和竖线表示您可以为 Option 参数选择列出的任一值,例如 ReadOnlyAllScope

    New-Alias -Option ReadOnly
    

参见

  • about_参数
  • Get-Command
  • Get-Help

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯