Cadena de concatenación de PowerShell – TrucosInformaticos

Powershell

Cuando trabaje con PowerShell, es posible que a menudo necesite combinar o concatenar cadenas. La concatenación es el proceso de combinar varias cadenas para crear una sola cadena. PowerShell proporciona varias opciones para concatenar cadenas, cada una con ventajas y casos de uso.

En esta publicación de blog, exploraremos diferentes técnicas de cadena de concatenación de PowerShell.

Expansión de cadenas

La expansión de cadenas es una forma sencilla e intuitiva de concatenar cadenas en PowerShell. Le permite incluir variables y expresiones dentro de cadenas entre comillas dobles. Cuando PowerShell encuentra una variable o expresión encerrada en pslo evalúa y lo reemplaza con su valor en la cadena resultante.

Este es un ejemplo de expansión de cadenas en PowerShell:

$firstName = "John" 
$lastName = "Doe"
$fullName = "$firstName $lastName"
$fullName

En este ejemplo, la variable $ nombre completo se le asignará el valor concatenado de $primerNombre y $apellidoresultando en «John Doe».

La expansión de cadenas es una opción conveniente cuando necesita concatenar algunas cadenas o incluir variables dentro de una cadena más grande.

Algunos ejemplos más:

# Username 
"$firstName.$lastName"
# Usre principal name or email address
"[email protected]"

Método String.Concat()

El Cadena.Concat() en PowerShell le permite concatenar varias cadenas pasándolas como argumentos separados al método. Este método de cadena de concatenación de PowerShell combina todas las cadenas de entrada y devuelve una nueva cadena, es decir, la concatenación de las entradas.

He aquí un ejemplo del uso de la Cadena.Concat() método:

$greeting = "Hello" 
$name = "John"
$message = [String]::Concat($greeting, " ", $name)

En este ejemplo, el concat() método combina la $saludoun carácter de espacio, y el $nombre variables, resultando en “Hola John”.

El Cadena.Concat() El método es útil cuando tiene un número conocido de cadenas para concatenar y desea especificar cada cadena como un argumento de forma explícita.

Operador de concatenación de cadenas (+)

PowerShell admite la + Operador para la concatenación de cadenas. Este operador le permite combinar dos o más cadenas en una sola cadena. Tenga en cuenta que este operador de cadena de concatenación de PowerShell es una abreviatura del Cadena.Concat() método.

Este es un ejemplo del uso del operador de concatenación de cadenas:

$firstName = "John" 
$lastName = "Doe"
$fullName = $firstName + " " + $lastName
$fullName

En este ejemplo, el + operador concatena el $primerNombreun carácter de espacio, y el $apellido variables, resultando en “Juan Pérez”.

concatenación de cadenas powershell

El operador de concatenación de cadenas es un enfoque conciso y de uso común para concatenar cadenas en PowerShell.

Tenga cuidado al usar el + Operador de cadena de concatenación de PowerShell al concatenar cadenas y números porque también es un operador matemático (suma). No puede realizar sumas usando cadenas y números. Por ejemplo, ejecute el siguiente comando en PowerShell.

$age = 30 
$age + " years old"

Este comando devuelve un error porque $edad es un valor numérico y PowerShell interpreta el + operador como una operación de suma en lugar de una concatenación de cadenas.

powershell concatenar cadena y variable

Lo mismo sucede incluso si no usa variables y especifica directamente el número así:

30 + " years old."

powershell combinar cuerdas

Entonces, ¿cómo podemos evitar este error? Puede especificar explícitamente el tipo de datos de la variable como una cadena de esta manera:

[string]$age = 30

O encierre el número entre comillas.

"30"

De cualquier manera, el objeto resultante es de un tipo de datos de cadena que puede verificar llamando al ObtenerTipo() método.

$age.GetType() 
"30".GetType()

cadena de concat powershell

Entonces, cuando apliquemos esta técnica, obtendremos los resultados esperados sin errores.

[string]$age = 30 
$age + " years old."

"30" + " years old."

concatenar cadena powershell

En resumen, cuando inicia una operación de cadena de concatenación de PowerShell con un número (es decir, número + cadena + cadena), la + El operador se interpreta como un operador matemático de suma.

Pero suponga que comienza la concatenación con un valor de cadena (es decir, cadena + número + cadena). En ese caso, cada elemento se considera automáticamente una cadena, y el + El operador se interpreta como un operador de concatenación de cadenas.

Publicación relacionada. PowerShell: convertir cadena a entero

Método String.Format()

El Cadena.Formato() El método de cadena de concatenación de PowerShell proporciona una forma flexible de concatenar cadenas en PowerShell al permitirle especificar marcadores de posición dentro de una cadena de formato y proporcionar los valores correspondientes.

He aquí un ejemplo del uso de la Cadena.Formato() método:

$firstName = "John" 
$lastName = "Doe"
$fullName = [String]::Format("Full name: {0} {1}", $firstName, $lastName)
$fullname

En este ejemplo, la cadena de formato «Nombre completo: {0} {1}» contiene marcadores de posición {0} y {1} que se sustituyen por los valores de $primerNombre y $apellidorespectivamente.

powershell concatenar cadenas

El Cadena.Formato() El método es beneficioso al crear una cadena formateada con marcadores de posición para valores dinámicos.

Por ejemplo, vamos a crear un tabla de picadillo de frutas con sus colores correspondientes.

$fruits = [ordered]@{ 
Banana="yellow"
Avocado = 'green'
Apple="red"
Orange="orange"
}

Utilizando el Cadena.Formato() método y for loop, podemos mostrar estos valores en este formato «[fruit name] es [color name]

for ($i = 0 ; $i -lt $fruits.Count; $i++ ) { 
[String]::Format("{0} is {1}", $fruits.Keys[$i], $fruits.Values[$i])
}

Cadena de adición de PowerShell

Operador de formato de cadena (-f)

PowerShell proporciona la -F operador, también conocido como operador de formato, que le permite realizar el formateo y la concatenación de cadenas de forma concisa y legible.

Nota. El -F operador es una abreviatura de Cadena.Formato() método.

Aquí hay un ejemplo del uso del operador de formato:

$firstName = "John" 
$lastName = "Doe"
$fullName = "Full name: {0} {1}" -f $firstName, $lastName

En este ejemplo, el operador de formato -F se aplica a la cadena “Nombre completo: {0} {1}”, y los valores de $primerNombre y $apellido se utilizan para reemplazar los marcadores de posición {0} y {1}.

El operador de formato es una forma elegante de concatenar cadenas y realizar formato en PowerShell. Como es una abreviatura de Cadena.Formato() método, también es excelente para mostrar valores dinámicos.

$fruits = [ordered]@{ 
Banana="yellow"
Avocado = 'green'
Apple="red"
Orange="orange"
}

for ($i = 0 ; $i -lt $fruits.Count; $i++ ) {
"{0} is {1}" -f $fruits.Keys[$i], $fruits.Values[$i]
}

powershell concatenar variables de cadena

Método String.Join()

El Cadena.Unirse() El método de cadena de concatenación de PowerShell le permite concatenar una matriz de cadenas usando un separador específico. Se necesitan dos argumentos: la cadena separadora y una matriz de cadenas para concatenar.

He aquí un ejemplo del uso de la Cadena.Unirse() método:

$colors = "Red", "Green", "Blue" 
$colorList = [String]::Join(", ", $colors)

En este ejemplo, el Unirse() método concatena las cadenas en el $colores array, separándolos con una coma y un espacio, resultando en “Rojo verde azul”.

powershell agregar a la cadena

El Cadena.Unirse() El método es útil cuando tiene una matriz de cadenas que desea concatenar con un separador específico.

Para otro ejemplo, obtengamos los primeros cinco servicios en la computadora y unamos sus Nombre para mostrar valores de propiedad con el “ | ” (espacio de barra espaciadora) caracteres.

$services = Get-Service | Select-Object -First 5 
[String]::Join(" | ", $services)

concatenación de cadenas powershell

Puedes lograr lo mismo con una sola línea. Esta vez, unámoslos con un carácter de nueva línea (`n)

[String]::Join("`n", $(Get-Service | Select-Object -First 3).DisplayName)

powershell agregar a la cadena

Operador de unión de cadenas (-join)

PowerShell también proporciona la -unirse operador, que le permite concatenar una matriz de cadenas sin especificar un separador explícitamente. El -unirse El operador une los elementos de una matriz en una sola cadena sin ningún delimitador.

Aquí hay un ejemplo del uso del operador de unión:

$colors = "Red", "Green", "Blue" 
-join $colors

En este ejemplo, el -unirse El operador concatena las cadenas en el $colores matriz sin ningún separador, lo que da como resultado «Rojo verde azul”.

powershell de concatenación de cadenas

El operador de combinación es útil cuando desea concatenar cadenas en una matriz sin ningún separador entre ellas. Como, al crear nombres de archivo con una fecha.

$name = "backup_" 
$now = Get-Date -Format "yyyy_MM_dd"
$ext = ".txt"
-join @($name, $now, $ext)

concatenacion powershell

Pero este operador es una abreviatura del Cadena.Unirse() método, lo que significa que también puede especificar un delimitador. Para ello, debe mover el -unirse operador después de la matriz y seguido por el delimitador.

$colors = "Red", "Green", "Blue" 
$colors -join ' > '

Powershell de cadena concatenada

Conclusión

La concatenación de cadenas en PowerShell es una tarea común, y conocer los diversos métodos disponibles puede ayudarlo a elegir el enfoque más adecuado para sus requisitos específicos.

En esta publicación de blog, exploramos diferentes opciones para concatenar cadenas en PowerShell, incluida la expansión de cadenas, la Cadena.Concat() método, el operador de concatenación de cadenas, el Cadena.Formato() método, el operador de formato, el Cadena.Unirse() método y el operador de unión.

Cada método tiene sus fortalezas y casos de uso, por lo que es fundamental comprender sus diferencias y elegir el más apropiado para sus necesidades de secuencias de comandos de PowerShell.

5/5 - (108 votos)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *