about_Command_Syntax

Descripción breve

Describe los diagramas de sintaxis que se usan en PowerShell.

Descripción larga

Los cmdlets Get-Help y Get-Command muestran diagramas de sintaxis para ayudarle a construir comandos correctamente. En este artículo se explica cómo interpretar los diagramas de sintaxis.

Obtención de la sintaxis de un comando

Hay dos maneras de obtener la sintaxis de un comando: Get-Help y Get-Command.

Get-Command

El Get-Command comando se puede usar para obtener información sobre cualquier comando del sistema. Use el parámetro Syntax para obtener la sintaxis de un comando.

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

El Get-Help comando proporciona información detallada sobre los comandos de PowerShell, como la sintaxis, la descripción detallada del cmdlet y los parámetros, y ejemplos. El comando de salida Get-Help comienza con una breve descripción del comando seguido de la sintaxis .

Get-Help Get-Command

La salida siguiente se ha abreviado para centrarse en la descripción de la sintaxis.

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>]
...

La salida de Get-Help es ligeramente diferente de la salida de Get-Command. Observe la diferencia en la sintaxis del parámetro CommandType . Get-Command muestra el tipo de parámetro como enumeración [CommandTypes] , mientras Get-Help se muestran los valores posibles para la enumeración.

Conjuntos de parámetros

Los parámetros de un comando de PowerShell se enumeran en conjuntos de parámetros. Un comando de PowerShell puede tener uno o varios conjuntos de parámetros. El Get-Command cmdlet tiene dos conjuntos de parámetros, como se muestra en los ejemplos anteriores.

Algunos de los parámetros de cmdlet son únicos para un conjunto de parámetros y otros aparecen en varios conjuntos de parámetros. Cada conjunto de parámetros representa el formato de un comando válido. Un conjunto de parámetros solo incluye parámetros que se pueden usar juntos en un comando. Cuando los parámetros no se pueden usar en el mismo comando, se muestran en conjuntos de parámetros independientes.

Por ejemplo, el cmdlet Get-Random tiene los siguientes conjuntos de parámetros:

$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>]
  • El primer conjunto de parámetros devuelve uno o varios números aleatorios y tiene los parámetros Minimum, Maximum y Count .
  • El segundo conjunto de parámetros devuelve un objeto seleccionado aleatoriamente de un conjunto de objetos e incluye los parámetros InputObject y Count .
  • El tercer conjunto de parámetros tiene el parámetro Shuffle que devuelve una colección de objetos en un orden aleatorio, como la orden aleatorio de una baraja de cartas.
  • Todos los conjuntos de parámetros tienen el parámetro SetSeed y los parámetros comunes.

Estos conjuntos de parámetros muestran que puede usar los parámetros InputObject y Count en el mismo comando, pero no puede usar los parámetros Maximum y Shuffle juntos.

Cada cmdlet también tiene un conjunto de parámetros predeterminado. El conjunto de parámetros predeterminado se usa cuando no se especifican parámetros que son únicos para un conjunto de parámetros. Por ejemplo, si usa Get-Random sin parámetros, PowerShell supone que usa el conjunto de parámetros RandomNumberParameterSet y devuelve un número aleatorio.

Símbolos en diagramas de sintaxis

En el diagrama de sintaxis se muestra el nombre del comando, los parámetros de comando y los valores de parámetro.

Los diagramas de sintaxis usan los símbolos siguientes:

  • Un guión - indica un nombre de parámetro. En un comando, escriba el guión inmediatamente antes del nombre del parámetro sin espacios intermedios, como se muestra en el diagrama de sintaxis.

    Por ejemplo, para usar el parámetro Name de Get-Command, escriba: Get-Command -Name.

  • Los corchetes angulares < > indican texto de marcador de posición. No escriba los corchetes angulares ni el texto del marcador de posición en un comando. En su lugar, se reemplaza por el elemento que describe.

    El marcador de posición dentro de los corchetes angulares identifica el tipo de .NET del valor que toma un parámetro. Por ejemplo, para usar el parámetro Name del Get-Command cmdlet, reemplace por <string[]> una o varias cadenas separadas por comas (,).

  • Los corchetes [] anexados a un tipo de .NET indican que el parámetro puede aceptar uno o varios valores de ese tipo. Escriba los valores como una lista separada por comas.

    Por ejemplo, los parámetros Name y Value del New-Alias cmdlet solo toman una cadena cada una.

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

    Pero el parámetro Name de Get-Process puede tomar una o varias cadenas.

    Get-Process [-Name] <string[]>
    
    Get-Process -Name Explorer, Winlogon, Services
    
  • Parámetros sin valores

    Algunos parámetros no aceptan entradas, por lo que no tienen un valor de parámetro. Los parámetros sin valores son parámetros switch. Los parámetros switch se usan como valores booleanos. El valor predeterminado es $false. Cuando se usa un parámetro switch, el valor se establece en $true.

    Por ejemplo, el parámetro ListImported de Get-Command es un parámetro switch. Cuando se usa el parámetro ListImported , el cmdlet devuelve solo los comandos importados desde módulos de la sesión actual.

    Get-Command [-ListImported]
    
  • Los corchetes alrededor de los parámetros [ ] indican elementos opcionales. Un parámetro y su valor pueden ser opcionales. Por ejemplo, el parámetro CommandType de Get-Command y su valor se incluyen entre corchetes porque ambos son opcionales.

    Get-Command [-CommandType <CommandTypes>]
    

    Los corchetes alrededor del nombre del parámetro, pero no el valor del parámetro, indican que el nombre del parámetro es opcional. Estos parámetros se conocen como parámetros posicionales. Los valores de parámetro deben presentarse en el orden correcto para que los valores estén enlazados al parámetro correcto.

    Por ejemplo, para el New-Alias cmdlet, se requieren los valores de parámetro Name y Value , pero los nombres -Name de parámetro y -Value, son opcionales.

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

    En cada conjunto de parámetros, los parámetros aparecen en orden de posición. El orden de los parámetros de un comando solo importa cuando se omiten los nombres de parámetro opcionales. Cuando se omiten los nombres de parámetro, PowerShell asigna valores a los parámetros por posición y tipo. Para obtener más información sobre la posición de los parámetros, consulte about_Parameters.

  • Las llaves indican una "enumeración", que es un conjunto de valores válidos {} para un parámetro.

    Los valores de las llaves están separados por barras verticales |. Estas barras indican una opción exclusiva-OR , lo que significa que solo puede elegir un valor del conjunto de valores que se muestran dentro de las llaves.

    Por ejemplo, la sintaxis del New-Alias cmdlet incluye la siguiente enumeración de valores para el parámetro Option :

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

    Las llaves y las barras verticales indican que puede elegir cualquiera de los valores enumerados para el parámetro Option , como ReadOnly o AllScope.

    New-Alias -Option ReadOnly
    

Consulte también