about_Parameters
Descripción breve
Describe cómo trabajar con parámetros de comando en PowerShell.
Descripción larga
La mayoría de los comandos de PowerShell, como cmdlets, funciones y scripts, dependen de parámetros para permitir a los usuarios seleccionar opciones o proporcionar entradas. Los parámetros siguen el nombre del comando y tienen el siguiente formato:
-<parameter_name> <parameter_value>
-<parameter_name>:<parameter_value>
El nombre del parámetro va precedido de un guión (-
), que indica a PowerShell que la palabra que sigue al guión es un nombre de parámetro. El nombre y el valor del parámetro se pueden separar por un espacio o un carácter de dos puntos. Algunos parámetros no requieren ni aceptan un valor de parámetro. Otros parámetros requieren un valor, pero no requieren el nombre del parámetro en el comando .
El tipo de parámetros y los requisitos de esos parámetros varían. Para buscar información sobre los parámetros de un comando, use el Get-Help
cmdlet . Por ejemplo, para buscar información sobre los parámetros del Get-ChildItem
cmdlet, escriba:
Get-Help Get-ChildItem
Para buscar información sobre los parámetros de un script, use la ruta de acceso completa al archivo de script. Por ejemplo:
Get-Help $HOME\Documents\Scripts\Get-Function.ps1
El Get-Help
cmdlet devuelve varios detalles sobre el comando, incluida una descripción, la sintaxis del comando, la información sobre los parámetros y ejemplos que muestran cómo usar los parámetros en un comando.
También puede usar el parámetro Parameter del Get-Help
cmdlet para buscar información sobre un parámetro determinado. O bien, puede usar el parámetro Parameter con el carácter comodín ( *
) para buscar información sobre todos los parámetros del comando. Por ejemplo, el siguiente comando obtiene información sobre todos los parámetros del Get-Member
cmdlet:
Get-Help Get-Member -Parameter *
Valores de parámetros predeterminados
Los parámetros opcionales tienen un valor predeterminado, que es el valor que se usa o se supone cuando el parámetro no se especifica en el comando.
Por ejemplo, el valor predeterminado del parámetro ComputerName de muchos cmdlets es el nombre del equipo local. Como resultado, el nombre del equipo local se usa en el comando a menos que se especifique el parámetro ComputerName .
Para buscar el valor de parámetro predeterminado, consulte el tema de ayuda del cmdlet. La descripción del parámetro debe incluir el valor predeterminado.
También puede establecer un valor predeterminado personalizado para cualquier parámetro de un cmdlet o una función avanzada. Para obtener información sobre cómo establecer valores predeterminados personalizados, consulte about_Parameters_Default_Values.
Tabla de atributos de parámetro
Cuando se usan los parámetros Full, Parameter o Online del Get-Help
cmdlet, Get-Help
se muestra una tabla de atributos de parámetro con información detallada sobre el parámetro.
Esta información incluye los detalles que necesita saber para usar el parámetro .
Por ejemplo, el tema de ayuda del Get-ChildItem
cmdlet incluye los siguientes detalles sobre su parámetro Path:
-Path <string[]>
Specifies a path of one or more locations. Wildcard characters are
permitted. The default location is the current directory (.).
Required? false
Position? 0
Default value Current directory
Accept pipeline input? true (ByValue, ByPropertyName)
Accept wildcard characters? true
La información del parámetro incluye la sintaxis del parámetro, una descripción del parámetro y los atributos de parámetro. En las secciones siguientes se describen los atributos de parámetro.
Parámetro requerido
Esta configuración indica si el parámetro es obligatorio, es decir, si todos los comandos que usan este cmdlet deben incluir este parámetro. Cuando el valor es True y falta el parámetro del comando, PowerShell le pedirá un valor para el parámetro .
Posición del parámetro
Si la Position
configuración se establece en un entero no negativo, el nombre del parámetro no es necesario. Este tipo de parámetro se conoce como parámetro posicional y el número indica la posición en la que el parámetro debe aparecer en relación con otros parámetros posicionales. Un parámetro con nombre puede aparecer en cualquier posición después del nombre del cmdlet. Si incluye el nombre del parámetro para un parámetro posicional, el parámetro puede aparecer en cualquier posición después del nombre del cmdlet.
Por ejemplo, el Get-ChildItem
cmdlet tiene parámetros Path y Exclude. La Position
configuración de Path es 0, lo que significa que es un parámetro posicional. La Position
configuración de Exclude se denomina .
Esto significa que Path no requiere el nombre del parámetro, pero su valor de parámetro debe ser el primer valor de parámetro sin nombre en el comando. Sin embargo, dado que el parámetro Exclude es un parámetro con nombre, puede colocarlo en cualquier posición del comando.
Como resultado de la Position
configuración de estos dos parámetros, puede usar cualquiera de los siguientes comandos:
Get-ChildItem -Path c:\techdocs -Exclude *.ppt
Get-ChildItem c:\techdocs -Exclude *.ppt
Get-ChildItem -Exclude *.ppt -Path c:\techdocs
Get-ChildItem -Exclude *.ppt c:\techdocs
Si tuviera que incluir otro parámetro posicional sin incluir el nombre del parámetro, ese parámetro debe colocarse en el orden especificado por la Position
configuración.
Tipo de parámetro
Esta configuración especifica el tipo de Microsoft .NET Framework del valor del parámetro. Por ejemplo, si el tipo es Int32, el valor del parámetro debe ser un entero. Si el tipo es string, el valor del parámetro debe ser una cadena de caracteres.
Si la cadena contiene espacios, el valor debe incluirse entre comillas o los espacios deben ir precedidos del carácter de escape (`
).
Valor predeterminado
Esta configuración especifica el valor que asume el parámetro si no se proporciona ningún otro valor. Por ejemplo, el valor predeterminado del parámetro Path suele ser el directorio actual. Los parámetros obligatorios nunca tienen un valor predeterminado. Para muchos parámetros opcionales, no hay ningún valor predeterminado porque el parámetro no tiene ningún efecto si no se usa.
Acepta varios valores
Esta configuración indica si un parámetro acepta varios valores de parámetro. Cuando un parámetro acepta varios valores, puede escribir una lista separada por comas como el valor del parámetro en el comando, o guardar una lista separada por comas (una matriz) en una variable y, a continuación, especificar la variable como valor de parámetro.
Por ejemplo, el parámetro Name del Get-Service
cmdlet acepta varios valores. Los siguientes comandos son válidos:
Get-Service -Name winrm, netlogon
$s = "winrm", "netlogon"
Get-Service -Name $s
Acepta la entrada de canalización.
Esta configuración indica si puede usar el operador de canalización (|
) para enviar un valor al parámetro .
Value Description
----- -----------
False Indicates that you cannot pipe a value to the
parameter.
True (by Value) Indicates that you can pipe any value to the
parameter, just so the value has the .NET
Framework type specified for the parameter or the
value can be converted to the specified .NET
Framework type.
Cuando un parámetro es "True (por valor)", PowerShell intenta asociar cualquier valor canalización con ese parámetro antes de intentar otros métodos para interpretar el comando.
True (by Property Name) Indicates that you can pipe a value to the
parameter, but the .NET Framework type of the
parameter must include a property with the same
name as the parameter.
Por ejemplo, puede canalizar un valor a un parámetro Name solo cuando el valor tiene una propiedad denominada Name.
Nota:
Un parámetro con tipo que acepta la entrada de canalización (by Value
) o (by PropertyName
) permite el uso de bloques de script de enlace retrasado en el parámetro .
El bloque de script delay-bind se ejecuta automáticamente durante ParameterBinding. El resultado está enlazado al parámetro . El enlace de retraso no funciona para los parámetros definidos como tipo ScriptBlock
o System.Object
, el bloque de script se pasa a través sin invocarse.
Puede leer sobre los bloques de scripts de enlace retrasado aquí about_Script_Blocks.md.
Acepta caracteres comodín
Esta configuración indica si el valor del parámetro puede contener caracteres comodín para que el valor del parámetro pueda coincidir con más de un elemento existente en el contenedor de destino.
Parámetros comunes
Los parámetros comunes son parámetros que puede usar con cualquier cmdlet. Para obtener más información sobre los parámetros comunes, consulte about_CommonParameters.