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 Usando un Operador de Subexpresión en PowerShell
  7. Conclusión
Interpolación de cadenas en PowerShell

La interpolación de cadenas en PowerShell es una característica poderosa que facilita el formato dinámico de cadenas al incrustar valores de variables, expresiones y comandos dentro de cadenas. Esta guía completa profundiza en las complejidades de la interpolación de cadenas, ofreciendo información detallada, ejemplos y aplicaciones prácticas de esta característica.

La interpolación de cadenas reemplaza el valor de una variable con marcadores 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 formateada. Este artículo discutirá el uso de variables durante la interpolación de cadenas en Windows PowerShell.

¿Qué son las variables en PowerShell?

Antes de discutir la interpolación de cadenas en Windows PowerShell, primero debemos hablar de uno de los requisitos críticos para lograr esto: las variables de Windows PowerShell.

Las variables en PowerShell sirven como contenedores para almacenar datos, permitiendo a los usuarios almacenar información y manipularla durante la ejecución del script. Actúan como nombres simbólicos que representan un valor específico o un objeto, proporcionando una forma de hacer referencia y trabajar con datos dentro de los scripts de PowerShell.

Aspectos clave de las variables en PowerShell:

Declaración y Nombres

Declaración:

Las variables en PowerShell se declaran utilizando el símbolo $ seguido de un nombre.

Ejemplo:

$my_var = "Hello World!"

Reglas de Nombres:

  • Deben comenzar con una letra o un guion bajo.
  • Pueden contener letras, números y guiones bajos.
  • No son sensibles a mayúsculas ($variable y $Variable se refieren a lo mismo).

Tipos de Datos

Tipado Dinámico:

PowerShell utiliza tipado dinámico, permitiendo que las variables contengan diferentes tipos de datos sin declaración de tipo explícita.

Ejemplo:

$number = 10
$text = "Sample text"

Alcance

Las variables pueden tener diferentes alcances, determinando su visibilidad y accesibilidad dentro de un script.

Local: Limitado al alcance o función actual.
Script: Visible a lo largo del script actual.
Global: Accesible en toda la sesión de PowerShell.

Asignación y Modificación

Asignación:

Las variables se asignan valores utilizando el operador de asignación (=).

Ejemplo:

$myVariable = "New value"

Modificación:

Las variables pueden modificarse asignando nuevos valores o alterando los existentes.

Ejemplo:

$number = $number + 5

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

Interpolación de Cadenas en Windows PowerShell

La interpolación de cadenas se refiere al proceso de incrustar variables, expresiones o comandos directamente dentro de cadenas para generar contenido dinámico.

Sintaxis Común:

  • Cadenas entre comillas dobles ("..."): Las cadenas encerradas entre comillas dobles permiten la interpolación de cadenas.
  • Sintaxis de Interpolación: $variable, $($expresión), y $(comando)

Interpolando Variables

Entendamos con un ejemplo de conexión de cadena utilizando la interpolación de cadenas en Windows PowerShell.

Ejemplo de Código:

$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.

Salida:

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.

Ejemplo de Código:

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

Salida:

Welcome to $company

Esta salida ocurre porque cualquier cosa encerrada con comillas simples trata cualquier cosa dentro como una expresión literal. Así que, asegúrate de que estés usando comillas dobles al interpolar una cadena.

Interpolando Expresiones

$age = 25
Write-Host "In five years, I'll be $($age + 5) years old."

La interpolación de cadenas, denotada por $(), permite la inclusión de valores de variables o expresiones dentro de una cadena. En este caso, calcula dinámicamente la edad futura al sumar 5 al valor almacenado en la variable $age, haciendo que la salida sea dinámica y refleje la edad esperada después de cinco años.

Interpolando Comandos

$currentDate = Get-Date
Write-Host "The current date is $(Get-Date)."

El resultado mostrará la fecha y hora actuales en el instante en que se ejecuta la línea Write-Host, incorporando dinámicamente el valor actualizado del cmdlet Get-Date dentro de la cadena a través de la interpolación.

Interpolación de Cadenas Con Variables de Entorno en PowerShell

Las variables de entorno son valores nombrados dinámicos almacenados en el sistema operativo, que contienen información sobre el entorno del sistema, preferencias del usuario y configuraciones.

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

Variables de Entorno Comunes:

  • $env:USERNAME: Representa el nombre de usuario del usuario actual.
  • $env:COMPUTERNAME: Almacena el nombre del ordenador.
  • $env:TEMP: Especifica el directorio de archivos temporales.
  • $env:PATH: Contiene las rutas de los archivos ejecutables del sistema.

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

Ejemplo de Código:

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.

Salida:

My computer name: WINDOWS-PC01

Interpolación de Cadenas Con Caracteres de Escape en PowerShell

A pesar de haber discutido que debemos usar comillas dobles durante la interpolación de cadenas, hay ciertos casos en los que poner una variable dentro de 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 ciertos símbolos se utilizan cuando se compila programáticamente.

Los caracteres de escape en PowerShell son secuencias especiales utilizadas para representar caracteres que pueden tener significados especiales dentro de las cadenas. Permiten la inclusión de caracteres especiales o controlan el formato dentro de las cadenas.

Caracteres de Escape Comunes:

  • Backtick (`): Se utiliza para escapar caracteres que tienen significados especiales.
  • Comillas Dobles ("): Permite la interpolación y evaluación de expresiones dentro de cadenas entre comillas dobles.
  • Nueva línea (``n`): Representa un carácter de nueva línea.
  • Tabulación (``t`): Inserta una tabulación horizontal.
  • Retorno de Carro (``r`): Mueve el cursor al inicio de la línea.

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

Ejemplo de Código:

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

En el script de Windows PowerShell anterior, $price dentro de las comillas dobles no da la salida esperada porque el entorno de scripting interpreta los signos de dólar dobles $$ de manera diferente.

Salida:

Discounted Price: Discounted Price: $$priceprice

Usa el carácter de escape de Windows PowerShell para la interpolación de cadenas a continuación para obtener la salida deseada.

Ejemplo de Código:

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

Salida:

Discounted Price: $99

Interpolación de Cadenas Usando Variables Con Caracteres Especiales en PowerShell

Como se mencionó, los nombres de las variables que comienzan con un signo de dólar $ pueden incluir caracteres alfanuméricos y caracteres especiales. Las variables en PowerShell pueden contener caracteres especiales como comillas invertidas (`), signos de dólar ($), o comillas (").

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

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

Ejemplo de Código:

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

Salida:

Hello World!

La variable ${this is a variable!}, a pesar de su nombre poco convencional, se crea y se le asigna el valor "Hello".

La interpolación de cadenas dentro de Write-Output concatena el valor de la variable con el texto " World!", resultando en la salida "Hello World!".

Interpolación de Cadenas Usando un Operador de Subexpresión en PowerShell

El operador de subexpresión ($()) en PowerShell permite la evaluación de expresiones, comandos o sub-scripts dentro de una cadena.

En Windows PowerShell, podemos utilizar 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 ().

Ejemplo de Código:

$num1 = 10
$num2 = 5

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

Salida:

10 + 5 = 15

La interpolación de cadenas incluye los valores de $num1 y $num2 como texto (10 y 5, respectivamente) junto con el resultado de la operación aritmética (15) obtenida al sumar $num1 y $num2.

Conclusión

El artículo explora la interpolación de cadenas en PowerShell, permitiendo el formato dinámico de cadenas al incrustar valores de variables, expresiones y comandos dentro de cadenas. Cubre:

  1. Variables en PowerShell: Estos contenedores contienen varios tipos de datos sin declaración de tipo explícita y siguen reglas de nomenclatura específicas.
  2. Fundamentos de la Interpolación de Cadenas: Implica incrustar $variables, $($expresiones), y $(comandos) dentro de cadenas entre comillas dobles para contenido dinámico.
  3. Ejemplos de Uso:
    • Utilizando variables para contenido dinámico dentro de cadenas.
    • Incorporando variables de entorno ($Env:NOMBRE_VARIABLE) para información relacionada con el sistema.
    • Empleando caracteres de escape (`) para manejar caracteres especiales o formato en cadenas.
    • Creando y utilizando variables con caracteres especiales o espacios utilizando la sintaxis ${}.
    • Aprovechando el operador de subexpresión $() para cálculos complejos dentro de cadenas.

Comprender estas técnicas en la interpolación de cadenas brinda a los usuarios de PowerShell herramientas poderosas para la creación dinámica de cadenas, ayudando a la legibilidad y flexibilidad en el formato de scripts.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
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