Cómo usar el símbolo @ en PowerShell

  1. Usa el símbolo @ para crear un arreglo en PowerShell
  2. Usa el símbolo @ para crear una tabla hash en PowerShell
  3. Usa el símbolo @ para aquí-cadenas en PowerShell
  4. Usa el símbolo @ para realizar splatting con arreglos en PowerShell
  5. Usa el símbolo @ para realizar splatting con tablas hash en PowerShell
  6. Conclusión
Hemos creado un video detallado en YouTube para acompañar este artículo, ¡incrustado a continuación!
Cómo usar el símbolo @ en PowerShell

PowerShell, un poderoso lenguaje de scripting y shell de línea de comandos, es conocido por su flexibilidad y amplia gama de características. Una de las características menos conocidas pero increíblemente potentes de PowerShell es el uso del símbolo @.

Este artículo profundiza en las multifacéticas aplicaciones del símbolo @ en scripting de PowerShell, revelando sus capacidades en la creación de arreglos, tablas hash y aquí-cadenas, particularmente en la técnica avanzada de splatting. Splatting, un método para pasar parámetros a funciones y cmdlets, mejora significativamente la legibilidad y mantenibilidad del script.

Al explorar estos usos del símbolo @, el artículo sirve como una guía completa tanto para principiantes como para usuarios experimentados de PowerShell que buscan aprovechar todo el potencial de este lenguaje de scripting.

Usa el símbolo @ para crear un arreglo en PowerShell

En PowerShell, el símbolo @ es versátil, pero uno de sus roles fundamentales es en la creación y manipulación de arreglos. Los arreglos son esenciales en cualquier lenguaje de programación, sirviendo como una forma de almacenar y manipular una colección de elementos.

El símbolo @ de PowerShell proporciona un método claro y conciso para definir arreglos, asegurando que incluso los elementos individuales o los resultados de los comandos se traten como arreglos.

Ejemplo:

# Define a simple Print function
function Print($message) {
    Write-Host $message
}

# Create an array of numbers
$numbers = @(1, 2, 3, 4, 5)

# Iterate over the array and print each number
foreach ($number in $numbers) {
    Print $number
}

En este script, primero definimos una función Print que toma un solo parámetro $message y usa Write-Host para mostrarlo. Esta función sirve como un mecanismo básico de salida para nuestra demostración.

A continuación, creamos un arreglo, $numbers, usando el símbolo @. Este arreglo se inicializa con cinco números: 1, 2, 3, 4 y 5.

Nota el uso de @() alrededor de los números, asegurando que se traten como un arreglo.

Tras la creación del arreglo, utilizamos un bucle foreach para iterar sobre cada elemento en el arreglo $numbers. Dentro del bucle, llamamos a nuestra función Print, pasando cada número en orden.

Salida:

usa el símbolo @ en powershell - salida 1

Usa el símbolo @ para crear una tabla hash en PowerShell

Una tabla hash es una estructura de datos compacta que almacena una o más parejas de claves y valores. También se conoce como diccionario o arreglo asociativo.

La sintaxis para crear una tabla hash en PowerShell comienza con el símbolo @. Las claves y los valores están encerrados en los corchetes {}.

Ejemplo:

# Define a simple Print function
function Print($message) {
    Write-Host $message
}

# Create a hashtable of employee details
$employee = @{
    Name       = 'John Doe'
    Department = 'IT'
    Position   = 'Analyst'
}

# Iterate over the hashtable and print each detail
foreach ($key in $employee.Keys) {
    $value = $employee[$key]
    Print "Key: $key, Value: $value"
}

En este script, comenzamos definiendo una función Print, que es una utilidad básica para mostrar mensajes en el host.

A continuación, creamos una tabla hash $employee usando el símbolo @. Esta tabla hash contiene tres parejas clave-valor representando el nombre de un empleado, departamento y posición.

Después de definir la tabla hash, utilizamos un bucle foreach para iterar a través de cada clave en la tabla hash. Dentro del bucle, recuperamos el valor correspondiente a cada clave y luego usamos nuestra función Print para mostrar tanto la clave como su valor.

Salida:

usar el símbolo @ en powershell - salida 2

Usa el símbolo @ para aquí-cadenas en PowerShell

Otro uso importante del símbolo @ es definir aquí-cadenas en PowerShell. Las comillas se interpretan literalmente en una aquí-cadena.

El propósito principal de las aquí-cadenas en PowerShell es simplificar el manejo de cadenas largas, particularmente aquellas que requieren un formato específico, saltos de línea o caracteres especiales. El manejo regular de cadenas en PowerShell, usando comillas simples ' o comillas dobles ", puede volverse engorroso con textos multilineales.

Ejemplo:

# Define a simple Print function
function Print($message) {
    Write-Host $message
}

# Define a variable
$name = "John"

# Create an expandable here-string
$multiLineText = @"
Hello, $name!
Welcome to PowerShell scripting.
This is an example of a multi-line here-string.
"@

# Print the here-string
Print $multiLineText

En este script, comenzamos definiendo una función Print para mostrar la salida.

Luego definimos una variable $name establecida en John. Después de esto, creamos una aquí-cadena expandible $multiLineText.

Nota cómo se utilizan los delimitadores @" "@ para iniciar y finalizar la cadena multilineal. Dentro de esta aquí-cadena, se incluye la variable $name, que será expandida a su valor.

Finalmente, llamamos a la función Print para mostrar el contenido de nuestra aquí-cadena.

Salida:

usar el símbolo @ en powershell - salida 3

Una aquí-cadena contiene todos los textos entre @" "@.

Aquí-cadena con comillas simples:

# Define a simple Print function
function Print($message) {
    Write-Host $message
}

# Create a single-quoted here-string
$literalText = @'
This is an example of a single-quoted here-string.
Special characters like $ or ` won't be processed.
Everything here is treated as literal text.
'@

# Print the here-string
Print $literalText

En nuestro script, comenzamos definiendo una función Print que muestra un mensaje dado en el host.

A continuación, creamos una aquí-cadena de comillas simples llamada $literalText. Los delimitadores @' '@ indican el inicio y el final de la aquí-cadena.

Dentro de estos delimitadores, incluimos texto que menciona caracteres especiales como $ y backtick ```, que normalmente tendrían significados especiales en PowerShell.

Finalmente, llamamos a la función Print para mostrar el contenido de nuestra aquí-cadena.

Salida:

usar el símbolo @ en powershell - salida 4

En las aquí-cadenas de comillas simples, las variables se interpretan literalmente y se imprimen en la salida, pero no en las aquí-cadenas de comillas dobles.

Usa el símbolo @ para realizar splatting con arreglos en PowerShell

El splatting se usa principalmente para mejorar la legibilidad y mantenibilidad del script, especialmente al tratar con comandos que requieren un gran número de parámetros. En lugar de listar cada parámetro y su valor directamente en el comando, el splatting permite definirlos en un arreglo o tabla hash y pasarlos todos a la vez usando el símbolo @.

Puedes usar el símbolo @ para splatting arreglos en el comando. El símbolo @ puede usar un arreglo para splat valores para parámetros de posición que no necesitan los nombres de los parámetros.

Ejemplo:

# Define a simple Print function
function Print-Message($part1, $part2, $part3) {
    Write-Host "$part1 - $part2 - $part3"
}

# Define an array of parameters
$paramArray = @('Hello', 'PowerShell', 'Splatting')

# Call the function using splatting
Print-Message @paramArray

En este ejemplo, comenzamos definiendo una función Print-Message que toma tres parámetros y los imprime en una cadena formateada.

Luego creamos un arreglo $paramArray que contiene tres valores de cadena: Hello, PowerShell y Splatting. Estos valores corresponden a los parámetros $part1, $part2 y $part3 de nuestra función.

Al llamar a la función Print-Message, usamos splatting para pasar el arreglo de parámetros. El símbolo @ antes de $paramArray indica que los elementos del arreglo deben ser mapeados a los parámetros de la función en su respectivo orden.

Salida:

usar el símbolo @ en powershell - salida 5

Usa el símbolo @ para realizar splatting con tablas hash en PowerShell

De manera similar, puedes usar el símbolo @ para splatting de tablas hash.

El propósito principal del splatting con tablas hash es simplificar el proceso de pasar parámetros a funciones y cmdlets en PowerShell. Se vuelve particularmente valioso al gestionar comandos complejos con numerosos parámetros, mejorando la legibilidad y mantenibilidad del código.

El splatting permite una forma más estructurada y clara de especificar parámetros, lo cual es beneficioso en la depuración y edición de scripts.

Ejemplo:

# Define a simple function
function Get-Greeting {
    param (
        [string]$Name,
        [string]$TimeOfDay
    )
    "Good $TimeOfDay, $Name!"
}

# Define a hash table of parameters
$greetingParams = @{
    Name      = 'Alice'
    TimeOfDay = 'Morning'
}

# Call the function using splatting
$greeting = Get-Greeting @greetingParams
Write-Host $greeting

En nuestro script, primero definimos una función Get-Greeting que acepta dos parámetros: Name y TimeOfDay.

A continuación, creamos una tabla hash $greetingParams y la poblamos con las claves Name y TimeOfDay, asignándoles los valores 'Alice' y 'Morning', respectivamente. Estas claves corresponden a los nombres de los parámetros de la función Get-Greeting.

Al llamar a Get-Greeting, usamos splatting prefijando la variable de la tabla hash $greetingParams con el símbolo @. Esta acción mapea las claves de la tabla hash a los parámetros correspondientes de la función.

Salida:

utiliza el símbolo @ en powershell - salida 6

Conclusión

A lo largo de este artículo, hemos explorado las versátiles aplicaciones del símbolo @ en PowerShell, un aspecto que a menudo pasa desapercibido pero que tiene un inmenso potencial en scripting. Desde la creación de arreglos y tablas hash hasta la definición de aquí-cadenas y la implementación de splatting, el símbolo @ es una herramienta pequeña pero poderosa en el arsenal de un programador de PowerShell.

Su capacidad para simplificar el paso de parámetros complejos y mejorar la legibilidad del código es particularmente notable en el contexto de splatting con arreglos y tablas hash. Como hemos visto, el uso del símbolo @ en PowerShell no es solo una cuestión de sintaxis, sino una puerta de entrada a prácticas de scripting más eficientes, legibles y mantenibles.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website