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 deGet-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
oAllScope
.New-Alias -Option ReadOnly