Cómo obtener argumentos de línea de comando en Windows PowerShell
- Definir Parámetros en un Script de PowerShell
- Parámetros Nombrados en un Script de PowerShell
- Asignar Valores Predeterminados a Parámetros en un Script de PowerShell
- Parámetros Switch en un Script de PowerShell
- Parámetros Obligatorios en un Script de PowerShell

Manejamos argumentos utilizando la función de parámetros de Windows PowerShell llamada param()
. La función de parámetros de Windows PowerShell es un componente fundamental de cualquier script. Un parámetro es la forma en que los desarrolladores permiten a los usuarios del script proporcionar entradas en tiempo de ejecución.
En este artículo, aprenderás cómo crear scripts con la función de parámetros, usarlos y algunas buenas prácticas para construir parámetros.
Definir Parámetros en un Script de PowerShell
Los administradores pueden crear parámetros para scripts y funciones utilizando la función de parámetros param()
. Una función contiene uno o más parámetros definidos por variables.
Hello_World.ps1
:
powershellCopyparam(
$message
)
Sin embargo, para asegurarse de que el parámetro acepte solo el tipo de entrada que necesitas, las mejores prácticas dictan que se asigne un tipo de dato al parámetro mediante el uso de un bloque de parámetros [Parameter()]
y se encierren el tipo de dato con corchetes []
antes de la variable.
Hello_World.ps1
:
powershellCopyparam(
[Parameter()]
[String]$message
)
En el ejemplo Hello_World.ps1
anterior, la variable message
solo aceptará un valor pasado si el valor dado tiene un tipo de dato String
.
Parámetros Nombrados en un Script de PowerShell
Una forma de utilizar la función de parámetros en un script es mediante el nombre del parámetro; este método se llama parámetros nombrados. Al llamar a un script o función mediante parámetros nombrados, usamos el nombre de la variable como el nombre completo del parámetro.
Creamos un Hello_World.ps1
y definimos variables dentro de la función de parámetros en este ejemplo. Recuerda que podemos poner una o más variables dentro de la función de parámetros.
Hello_World.ps1
:
powershellCopyparam(
[Parameter()]
[String]$message,
[String]$emotion
)
Write-Output $message
Write-Output "I am $emotion"
Luego podemos usar los parámetros nombrados como un argumento al ejecutar un archivo .ps1
.
powershellCopy.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy'
Salida:
textCopyHello World!
I am happy
Asignar Valores Predeterminados a Parámetros en un Script de PowerShell
Podemos preasignar un valor a un parámetro dándole al parámetro un valor dentro del script. Luego, ejecutar el script sin pasar valores desde la línea de ejecución tomará el valor predeterminado de la variable definida dentro del script.
powershellCopyparam(
[Parameter()]
[String]$message = "Hello World",
[String]$emotion = "happy"
)
Write-Output $message
Write-Output "I am $emotion"
powershellCopy.\Hello_World.ps1
Salida:
textCopyHello World!
I am happy
Parámetros Switch en un Script de PowerShell
Otro parámetro que podemos usar es el parámetro switch definido por el tipo de dato [switch]
. El parámetro switch se utiliza para valores binarios o booleanos para indicar true
o false
.
Hello_World.ps1
:
powershellCopyparam(
[Parameter()]
[String]$message,
[String]$emotion,
[Switch]$display
)
if ($display) {
Write-Output $message
Write-Output "I am $emotion"
}
else {
Write-Output "User denied confirmation."
}
Podemos llamar a nuestro script con el parámetro del script utilizando la sintaxis a continuación.
powershellCopy.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy' -display:$false
Salida:
textCopyUser denied confirmation.
Parámetros Obligatorios en un Script de PowerShell
Es común tener uno o más parámetros que deben ser utilizados cuando se ejecuta un script. Podemos hacer que un parámetro sea obligatorio agregando un atributo Mandatory
dentro del bloque de parámetros [Parameter()]
.
Hello_World.ps1:
powershellCopyparam(
[Parameter(Mandatory)]
[String]$message,
[String]$emotion,
[Switch]$display
)
if ($display) {
Write-Output $message
Write-Output "I am $emotion"
}
else {
Write-Output "User denied confirmation."
}
Al ejecutar Hello_World.ps1
, Windows PowerShell no permitirá que el script se ejecute y te pedirá un valor.
powershellCopy.\Hello_World.ps1
Salida:
textCopycmdlet hello_world.ps1 at command pipeline position 1
Supply values for the following parameters:
message:
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn