about_Command_Syntax

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Например, параметры Name и Value командлета 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
    
  • Параметры без значений

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

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

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

    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
    

См. также раздел