PowerShell:
Lectura de argumentos de línea de comandos
Cómo Hacerlo:
Para leer argumentos en PowerShell, se usa la variable automática $args
, que es un array. Aquí tienes algunos ejemplos prácticos:
# archivo: get-names.ps1
param(
[string]$firstName,
[string]$lastName
)
Write-Host "Hola, $firstName $lastName!"
Ejecución y salida esperada:
PS> .\get-names.ps1 -firstName "Juan" -lastName "Pérez"
Hola, Juan Pérez!
También puedes acceder a los argumentos sin declarar parámetros:
# archivo: greet-user.ps1
Write-Host "¡Hola, $($args[0])!"
Ejecución y salida esperada:
PS> .\greet-user.ps1 Mundo
¡Hola, Mundo!
Inmersión Profunda:
Históricamente, los argumentos de línea de comandos se utilizan en muchos lenguajes de programación para controlar el comportamiento de las aplicaciones en la ejecución. En PowerShell, $args
es una variable incorporada que captura todos los argumentos que no están asociados con un parámetro nombrado. Pero, para tener un control más robusto, se utilizan los parámetros, como en el ejemplo con param(...)
, que también permite la tipificación y la validación de datos.
Alternativamente, puedes usar Getopts
y CmdletBinding
para un control más avanzado en scripts que requieren una estructura similar a la de un cmdlet. Además, puedes acceder a MyInvocation
para más detalles sobre cómo se invocó el script, incluyendo la línea de comandos completa.
Con respecto a la implementación, es importante tener claro que los elementos en $args
están indexados desde 0, que es lo común en los lenguajes de programación. Sin embargo, no debes olvidar que si un usuario introduce más argumentos de los que espera tu script, necesitarás manejar los adicionales o imprevistos para evitar errores.
Ver También:
- Guía sobre
$args
: about_Automatic_Variables