about_Command_Syntax

Краткое описание

Описание схем синтаксиса, используемых в PowerShell.

Подробное описание

Командлеты Get-Help и Get-Command отображают схемы синтаксиса, которые помогают правильно создавать команды. В этой статье объясняется, как интерпретировать схемы синтаксиса.

Получение синтаксиса для команды

Существует два способа получения синтаксиса для команды: Get-Help и Get-Command.

Get-Command;

Эта Get-Command команда может использоваться для получения сведений о любой команде в системе. Используйте параметр Синтаксиса, чтобы получить синтаксис для команды.

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, включая синтаксис, подробное описание командлета и параметров и примеры. Команда выходных данных 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 имеет два набора параметров, как показано в предыдущих примерах.

Некоторые параметры командлета уникальны для набора параметров, а другие — в нескольких наборах параметров. Каждый набор параметров представляет формат допустимой команды. Набор параметров содержит только параметры, которые можно использовать вместе в команде. Если параметры нельзя использовать в той же команде, они перечислены в отдельных наборах параметров.

Например, командлет Get-Random имеет следующие наборы параметров:

$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>]
  • Первый набор параметров возвращает одно или несколько случайных чисел и имеет параметры "Минимальное", "Максимальное" и "Число ".
  • Второй набор параметров возвращает случайный выбранный объект из набора объектов и включает параметры InputObject и Count .
  • Третий набор параметров имеет параметр Shuffle, который возвращает коллекцию объектов в случайном порядке, например перемешивание палубы карта.
  • Все наборы параметров имеют параметр SetSeed и общие параметры.

Эти наборы параметров показывают, что можно использовать параметры InputObject и Count в той же команде, но нельзя использовать параметры Maximum и Shuffle вместе.

Каждый командлет также имеет набор параметров по умолчанию. Набор параметров по умолчанию используется, если не указывать параметры, уникальные для набора параметров. Например, если вы используете Get-Random без параметров, PowerShell предполагает, что используется набор параметров RandomNumberParameterSet и возвращает случайное число.

Символы в синтаксической схеме

На схеме синтаксиса перечислены имя команды, параметры команды и значения параметров.

На схемах синтаксиса используются следующие символы:

  • Дефис - указывает имя параметра. В команде введите дефис непосредственно перед именем параметра без промежуточных пробелов, как показано на схеме синтаксиса.

    Например, чтобы использовать параметр Name для Get-Commandтипа Get-Command -Name: .

  • Угловые скобки < > указывают текст заполнителя. Вы не вводите угловые скобки или текст заполнителя в команде. Вместо этого замените его элементом, который он описывает.

    Заполнитель в угловых скобках определяет тип .NET значения, которое принимает параметр. Например, чтобы использовать параметр Name командлетаGet-Command , замените <string[]> одну или несколько строк, разделенных запятыми (,).

  • Квадратные скобки, добавленные [] к типу .NET, указывают на то, что параметр может принимать одно или несколько значений этого типа. Введите значения в виде разделенного запятыми списка.

    Например, параметры имени и значения командлета New-Alias принимают только одну строку.

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

    Но параметр Name get-Process может принимать одну или несколько строк.

    Get-Process [-Name] <string[]>
    
    Get-Process -Name Explorer, Winlogon, Services
    
  • Параметры без значений

    Некоторые параметры не принимают входные данные, поэтому они не имеют значения параметра. Параметры без значений являются параметрами коммутатора. Параметры коммутатора используются как логические значения. Они по умолчанию $false. При использовании параметра коммутатора для параметра задано $trueзначение .

    Например, параметр Get-Command ListImported является параметром switch. При использовании параметра ListImported командлет возвращает только команды, импортированные из модулей в текущем сеансе.

    Get-Command [-ListImported]
    
  • Квадратные скобки [ ] вокруг параметров указывают на необязательные элементы. Параметр и его значение могут быть необязательными. Например, параметр Get-Command CommandType и его значение заключены в скобки, так как они являются необязательными.

    Get-Command [-CommandType <CommandTypes>]
    

    Квадратные скобки вокруг имени параметра, но не значение параметра, указывают, что имя параметра является необязательным. Эти параметры называются позициальными параметрами. Значения параметров должны быть представлены в правильном порядке, чтобы значения были привязаны к правильному параметру.

    Например, для командлета New-Aliasтребуются значения параметров Name и Value , но имена -Name параметров и -Valueнеобязательные.

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

    В каждом наборе параметров параметры отображаются в порядке позиции. Порядок параметров в команде имеет значение только при пропуске необязательных имен параметров. Если имена параметров опущены, PowerShell назначает значения параметрам по позиции и типу. Дополнительные сведения о положении параметров см. в about_Parameters.

  • Фигурные скобки {} указывают на перечисление, которое является набором допустимых значений для параметра.

    Значения в фигурных скобках разделены вертикальными полосами |. Эти полосы указывают на выбор монопольного ИЛИ , что означает, что можно выбрать только одно значение из набора значений, перечисленных в фигурных скобках.

    Например, синтаксис для командлета New-Alias содержит следующее перечисление значений для параметра Option :

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

    Фигурные скобки и вертикальные полосы указывают, что можно выбрать любое из перечисленных значений для параметра Option , например ReadOnly или AllScope.

    New-Alias -Option ReadOnly
    

См. также