Cadena de unión de PowerShell | Aprenda ¿Cómo funciona la cadena de unión de PowerShell?
Introducción a la cadena de unión de PowerShell
PowerShell Join String (método de una clase de cadena .NET) que combina varias cadenas y genera una sola cadena en el mismo orden en que se proporcionó la entrada y el método Join-String se agregó a la nueva versión principal de PowerShell y admite el avance Método de unión para la cadena de PowerShell.
Sintaxis
-Join <String[]>
<String[]> -Join <Delimiter>Sintaxis de cadena de unión,
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]Sintaxis de ruta de unión,
Join-Path
[-Path] <String[]>
[-ChildPath] <String>
[[-AdditionalChildPath] <String[]>]
[-Resolve]
[-Credential <PSCredential>]
[<CommonParameters>]¿Cómo funciona la cadena de unión de PowerShell?
El comando Unirse de PowerShell funciona en String para concatenar varias cadenas en una. En la sintaxis de Unirse,
-Join <String[]>
<String[]> -Join <Delimiter>String[]: indica las múltiples entradas de cadena.
Por ejemplo,
-Join ("Hello","PoweShell","Join")Salida:
Es posible que hayas notado que hemos usado una cadena dentro de los corchetes porque la cadena con un corchete redondo menciona la matriz y si no la usamos y si hay un separador de coma (,) entre ellos, entonces solo se enviará la primera cadena. al operador Unirse. Vea el ejemplo a continuación,
-Join "Hello","PoweShell","Join"Salida:
También puedes usar la variable para concatenar la cadena.
$var = "Hello","PoweShell","Join"
-Join $var
Salida:
Este método -Join String funciona con cualquier versión de PowerShell (versión Framework o Core).
Hay otro método llamado Join-String que realiza las mismas operaciones de unión de múltiples cadenas, pero tiene algunos métodos avanzados, como podemos aplicar una fórmula para una subcadena, podemos usar salpicaduras, usar diferentes parámetros para los separadores después de unir el script como SingleQuote o DoubleQuote. o podemos crear una definición de clase a partir de un objeto.
Este método solo funciona con PowerShell Core (versión 6.2 o superior).
Si no especifica ninguna propiedad y usa directamente el comando Join-String, usará $OFS (Separador de campo de salida) y de forma predeterminada es "".
Por ejemplo,
"Hello","PowerShell","Join" | Join-StringSalida:
También existe el comando Join-Path que une la ruta principal y la secundaria.
Ejemplos
Aquí están los siguientes ejemplos que se mencionan a continuación.
1. Múltiples formas de utilizar el comando de cadena -Join.
Sin usar matriz,
-Join "Animals","Birds","Vehicles"Salida:
Con el uso de una matriz,
-Join ("Animals","Birds","Vehicles")Salida:
Con el uso de una variable,
$a = "Hello","PowerShell","Join"
-Join $aSalida:
2. Únase a String con un delimitador específico.
Para unir una cadena con un delimitador específico, necesitamos usar el comando como se muestra en la sintaxis y el ejemplo se muestra a continuación.
Ejemplo n.º 1
"Hello","PowerShell","Join" -join ','Salida:
Ejemplo n.º 2
"PowerShell","Azure","Runbook" -join " "Salida:
Ejemplo n.º 3
En el siguiente ejemplo, utilizamos caracteres para unir la cadena.
"PowerShell","Azure","Runbook" -join "#O"Salida:
También puede aplicar directamente la operación Unirse al cmdlet. Por ejemplo, el siguiente comando obtendrá el contenido de un archivo de texto y lo unirá con un punto y coma (;).
(Get-Content C:\Temp\Servers.txt) -join ';'Salida:
3. Comando Unir ruta.
Para unir la ruta secundaria y principal,
Join-Path -Path C:\ -ChildPath 'temp'Salida:
Cuando usamos '\' en la ruta que se ignora como se muestra a continuación.
Join-Path -Path 'C:\' -ChildPath '\temp'Salida:
4. Comando Unir-Cadena.
Como se analizó anteriormente, este comando proporciona una funcionalidad avanzada para unir varias cadenas. Por ejemplo,
Ejemplo1: Separador predeterminado del comando Unir-cadena.
"PowerShell","Azure","runbook" | Join-StringSalida:
En el ejemplo anterior, las cadenas se unen con $OFS.
Ejemplo2: Comando Join-String con separador.
"PowerShell","Azure","runbook" | Join-String -Separator ','Salida:
Ejemplo n.º 3: Unir cadena con un separador y una propiedad -SingleQuote.
"PowerShell","Azure","runbook" | Join-String -Separator ',' -SingleQuoteSalida:
Ejemplo n.º 4: Unir cadena con un separador y una propiedad -DoubleQuote.
"PowerShell","Azure","runbook" | Join-String -Separator ',' -DoubleQuoteSalida:
Ejemplo n.º 5: Obtener proceso con cadena de unión.
En el siguiente ejemplo, unimos los primeros 5 procesos con la propiedad "Nombre" con el separador y usando comillas dobles.
Get-Process | Select -First 5 | Join-String -Property Name -Separator ',' -DoubleQuoteSalida:
Aquí, el proceso Get que recupera la lista de procesos en ejecución se pasa a través de la canalización hasta el comando Join-String, y la propiedad "Nombre" se utiliza para unirse. También puede seleccionar diferentes propiedades como ID de proceso.
Get-Process | Select -First 5 | Join-String -Property id -Separator ','Salida:
Ejemplo #6: Usar un nombre de propiedad con la operación SubString para unir nombres de procesos.
En el siguiente ejemplo, usaremos la operación de subcadena para unir procesos con los primeros 3 caracteres.
Get-Process | Select -First 5 | Join-String -Property {$_.Name.Substring(0,3)} -Separator ',' -DoubleQuoteSalida:
En el siguiente ejemplo, seleccionamos los primeros 5 procesos, los pasamos a la propiedad Nombre del comando Join-String y luego los convertimos en Mayúsculas y uniones.
Get-Process | Select -First 5 | Join-String -Property {$_.Name.ToUpper()} -Separator ',' -DoubleQuoteSalida:
Ejemplo #7 - Separador con caracteres especiales.
Como separador también podemos utilizar caracteres especiales. Puede obtener una lista de caracteres especiales en el enlace de MS a continuación.
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_special_characters?view=powershell-7.1
El siguiente comando recuperará los procesos que comienzan con "Power" y los unirá con su propiedad "Name" y los separará con un carácter especial `n (Nueva línea) y `t (tab) y etiquetará la salida como "Procesos de PowerShell" y -Parámetro OutPrefix utilizado para ello.
Get-Process Power* | Join-String -Property Name -Separator "`n`t" -OutputPrefix "PowerShell Processes: `n`t"Salida:
Tenga en cuenta: Hemos agregado caracteres especiales al final de la línea para que la primera línea tenga el formato correspondiente.
Conclusión
Los comandos de unión de PowerShell son extremadamente útiles en el script cuando trabajamos con las cadenas y útiles cuando trabajamos con rutas para que podamos unir la ruta y también realizar la operación de unión en la cadena dividida.






















