Interpolación de cadenas en PowerShell

  1. ¿Qué son las variables en PowerShell?
  2. Interpolación de cadenas en Windows PowerShell
  3. Interpolación de cadenas con variables de entorno en PowerShell
  4. Interpolación de cadenas con caracteres de escape en PowerShell
  5. Interpolación de cadenas usando variables con caracteres especiales en PowerShell
  6. Interpolación de cadenas mediante un operador de subexpresión en PowerShell
Interpolación de cadenas en PowerShell

La interpolación de cadenas en Windows PowerShell reemplaza el valor de una variable en marcadores de posición en una cadena. Además, el proceso de interpolación de cadenas muestra el valor de la variable en la cadena.

La interpolación de cadenas de Windows PowerShell proporciona una sintaxis más legible, fácil de leer y conveniente para crear una cadena con formato. Este artículo tratará el uso de variables durante la interpolación de cadenas en Windows PowerShell.

¿Qué son las variables en PowerShell?

Antes de analizar la interpolación de cadenas de Windows PowerShell, primero debemos analizar uno de los requisitos críticos para lograrlo: las variables de Windows PowerShell.

Como está escrito en la documentación oficial de Microsoft, una variable es una unidad de memoria en la que se almacenan valores de muchos tipos de datos. En Windows PowerShell, las variables se representan mediante cadenas que comienzan con un signo de dólar $.

$my_var = "Hello World!"

Usaremos estas variables para realizar la interpolación de cadenas en Windows PowerShell.

Interpolación de cadenas en Windows PowerShell

Entendamos con un ejemplo para conectar una cadena mediante la interpolación de cadenas en Windows PowerShell.

Código de ejemplo:

$company = "XYZ Company"
Write-Output "Welcome to $company"

En el script de PowerShell anterior, la variable $company contiene el valor de cadena XYZ Company.

Dentro de las comillas dobles "", Windows PowerShell interpola el nombre de la variable de cadena y muestra el resultado a continuación en la siguiente declaración.

Producción :

Welcome to XYZ Company

Si ponemos un nombre de variable entre comillas simples '', mostrará el nombre de la variable en su lugar, como se muestra a continuación.

Código de ejemplo:

$company = "XYZ Company"
Write-Output 'Welcome to $company'

Producción :

Welcome to $company

Esta salida ocurre porque cualquier cosa encerrada entre comillas simples trata cualquier cosa dentro como una expresión literal. Por lo tanto, asegúrese de utilizar comillas dobles al interpolar una cadena.

Interpolación de cadenas con variables de entorno en PowerShell

Las variables de entorno, representadas por la variable Env: en Windows PowerShell, almacenan el entorno y los programas del sistema operativo. Los detalles de esta información incluyen la ruta del sistema operativo, la ubicación del directorio de instalación de Windows, la cantidad de procesos utilizados por el sistema operativo y mucho más.

En Windows PowerShell, las variables de entorno se pueden interpolar dentro de una cadena como otras variables estándar.

Código de ejemplo:

Write-Output "My computer name: $Env:COMPUTERNAME"

En el script de PowerShell anterior, $Env: COMPUTERNAME muestra un valor de variable entre comillas dobles y lo concatena con una cadena.

Producción :

My computer name: WINDOWS-PC01

Interpolación de cadenas con caracteres de escape en PowerShell

A pesar de discutir que deberíamos usar comillas dobles durante la interpolación de cadenas, ciertos casos en los que poner una variable entre comillas dobles no proporciona los resultados esperados. Un ejemplo de esto son los caracteres de escape.

Un carácter de escape es un tipo de carácter que invoca una interpretación alternativa de los siguientes caracteres en una secuencia de caracteres. Los caracteres de escape son comunes entre los lenguajes de programación, ya que se utilizan ciertos símbolos cuando se compilan mediante programación.

Por ejemplo, en Windows PowerShell, el signo de dólar $ es uno de los operadores más comunes que se utilizan para definir una variable. Usaremos el signo de dólar como ejemplo a continuación.

Código de ejemplo:

$price = 99
Write-Output "Discounted Price: $$price"

En la secuencia de comandos de Windows PowerShell anterior, $price entre comillas dobles no da el resultado esperado porque el entorno de secuencias de comandos interpreta los signos de dólar dobles $$ de manera diferente.

Producción :

Discounted Price: Discounted Price: $$priceprice

Use el carácter de escape de Windows PowerShell para la interpolación de cadenas a continuación para obtener el resultado deseado.

Código de ejemplo:

$price = 99
Write-Output "Discounted Price: `$$price"

Producción :

Discounted Price: $99

Interpolación de cadenas usando variables con caracteres especiales en PowerShell

Como se mencionó, los nombres de variables que comienzan con un signo de dólar $ pueden incluir caracteres alfanuméricos y caracteres especiales.

La mejor práctica para definir variables es incluir solo caracteres alfanuméricos y el carácter de subrayado _. Los nombres de variables que incluyen otros caracteres especiales, incluidos espacios, son difíciles de usar y deben evitarse.

Sin embargo, no estamos diciendo que el uso de variables con caracteres especiales sea imposible. Si la situación no puede evitar esto, podemos usar el signo de dólar y los corchetes ${} para escapar de todos los caracteres especiales, incluidos los espacios, en un nombre de variable.

Código de ejemplo:

${this is a variable!} = "Hello"
Write-Output "${this is a variable!} World!"

Producción :

Hello World!

Interpolación de cadenas mediante un operador de subexpresión en PowerShell

En Windows PowerShell, podemos usar el operador de subexpresión $() para ejecutar una expresión dentro de una expresión como la interpolación de cadenas. Hacemos esto encerrando cualquier expresión que ejecutemos con un signo de dólar y paréntesis ().

Código de ejemplo:

$num1 = 10
$num2 = 5

Write-Output "$num1 + $num2 = $($num1+$num2)"

Producción :

10 + 5 = 15
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artículo relacionado - PowerShell String