Join-String
Combina objetos de la canalización en una sola cadena.
Sintaxis
Default (Es el valor predeterminado).
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
SingleQuote
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-SingleQuote]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
DoubleQuote
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-DoubleQuote]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Format
Join-String
[[-Property] <PSPropertyExpression>]
[[-Separator] <String>]
[-OutputPrefix <String>]
[-OutputSuffix <String>]
[-FormatString <String>]
[-UseCulture]
[-InputObject <PSObject[]>]
[<CommonParameters>]
Description
El cmdlet Join-String combina o combina texto de objetos de canalización en una sola cadena.
Si no se especifica ningún parámetro, los objetos de canalización se convierten en una cadena y se combinan con el separador predeterminado $OFS.
Nota:
Cuando se establece $OFS su valor se usa para combinar matrices cuando se convierten en cadenas hasta que la variable se restablece a $null. Dado que el uso de $OFS puede tener efectos no deseados en otro lugar del código, es mejor usar el parámetro separador de en su lugar.
Al especificar un nombre de propiedad, el valor de la propiedad se convierte en una cadena y se combina en una cadena.
En lugar de un nombre de propiedad, se puede usar un bloque de script. El resultado del bloque de script se convierte en una cadena antes de unirla para formar el resultado. Puede combinar el texto de la propiedad de un objeto o el resultado del objeto convertido en una cadena.
Este cmdlet se introdujo en PowerShell 6.2.
Ejemplos
Ejemplo 1: Combinación de nombres de directorio
En este ejemplo se unen los nombres de directorio, se ajusta la salida entre comillas dobles y se separan los nombres de directorio con una coma y un espacio (, ). La salida es un objeto de cadena.
Get-ChildItem -Directory C:\ | Join-String -Property Name -DoubleQuote -Separator ', '
"PerfLogs", "Program Files", "Program Files (x86)", "Users", "Windows"
Get-ChildItem usa el parámetro Directory para obtener todos los nombres de directorio de la unidad de C:\.
Los objetos se envían por la canalización a Join-String. El parámetro Property especifica los nombres de directorio. El parámetro DoubleQuote ajusta los nombres de directorio con comillas dobles.
El parámetro separador de especifica usar una coma y un espacio (, ) para separar los nombres de directorio.
Los objetos Get-ChildItem son System.IO.DirectoryInfo y Join-String convierte los objetos en System.String.
Ejemplo 2: Usar una subcadena de propiedad para combinar nombres de directorio
En este ejemplo se usa un método de subcadena para obtener las cuatro primeras letras de nombres de directorio, se ajusta la salida entre comillas simples y se separan los nombres de directorio con un punto y coma (;).
Get-ChildItem -Directory C:\ | Join-String -Property {$_.Name.SubString(0,4)} -SingleQuote -Separator ';'
'Perf';'Prog';'Prog';'User';'Wind'
Get-ChildItem usa el parámetro Directory para obtener todos los nombres de directorio de la unidad de C:\.
Los objetos se envían por la canalización a Join-String.
El bloque de script de parámetro Property usa variable automática ($_) para especificar la subcadena de propiedad name de cada objeto. La subcadena obtiene las cuatro primeras letras de cada nombre de directorio. La subcadena especifica las posiciones inicial y final del carácter. El parámetro SingleQuote ajusta los nombres de directorio con comillas simples. El parámetro separador de especifica usar un punto y coma (;) para separar los nombres de directorio.
Para obtener más información sobre las variables y subcadenas automáticas, vea about_Automatic_Variables y Subcadena.
Ejemplo 3: Mostrar la salida de combinación en una línea independiente
En este ejemplo se unen los nombres de servicio con cada servicio en una línea independiente y se aplica sangría a una pestaña.
Get-Service -Name se* | Join-String -Property Name -Separator "`r`n`t" -OutputPrefix "Services:`n`t"
Services:
seclogon
SecurityHealthService
SEMgrSvc
SENS
Sense
SensorDataService
SensorService
SensrSvc
SessionEnv
Get-Service usa el parámetro Name de con para especificar los servicios que comienzan por se*. El asterisco (*) es un carácter comodín para cualquier carácter.
Los objetos se envían a la canalización para Join-String que usa el parámetro property para especificar los nombres de servicio. El parámetro separador especifica tres caracteres especiales que representan un retorno de carro (`r), nueva línea (`n) y tabulación (`t). El OutputPrefix inserta una etiqueta Services: con una nueva línea y pestaña antes de la primera línea de salida.
Para obtener más información sobre los caracteres especiales, vea about_Special_Characters.
Ejemplo 4: Creación de una definición de clase a partir de un objeto
En este ejemplo se genera una definición de clase de PowerShell mediante un objeto existente como plantilla.
En este ejemplo de código se usa la expansión para reducir la longitud de línea y mejorar la legibilidad. Para obtener más información, consulte about_Splatting.
$obj = [pscustomobject] @{Name = "Joe"; Age = 42}
$parms = @{
Property = "Name"
FormatString = ' ${0}'
OutputPrefix = "class {`n"
OutputSuffix = "`n}`n"
Separator = "`n"
}
$obj.psobject.Properties | Join-String @parms
class {
$Name
$Age
}
Parámetros
-DoubleQuote
Ajusta el valor de cadena de cada objeto de canalización entre comillas dobles.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
DoubleQuote
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-FormatString
Especifica una cadena de formato que especifica cómo se debe dar formato a cada objeto de canalización antes de combinarlos. Use el marcador de posición {0} para representar el objeto actual. Si necesita mantener las llaves ({}) en la cadena con formato, puede escaparlas duplicando las llaves ({{ y }}).
Para obtener más información, consulte el método String.Format y formato compuesto.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
Format
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-InputObject
Especifica el texto que se va a combinar. Escriba una variable que contenga el texto, o escriba un comando o expresión que obtenga los objetos que se van a combinar en cadenas.
Propiedades del parámetro
| Tipo: | PSObject[] |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | True |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-OutputPrefix
Texto que se inserta antes de la cadena de salida. La cadena puede contener caracteres especiales, como retorno de carro (`r), nueva línea (`n) y tabulación (`t).
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | op |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-OutputSuffix
Texto que se anexa a la cadena de salida. La cadena puede contener caracteres especiales, como retorno de carro (`r), nueva línea (`n) y tabulación (`t).
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | SO |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Property
Nombre de una propiedad, o una expresión de propiedad, que se va a convertir en texto.
Propiedades del parámetro
| Tipo: | PSPropertyExpression |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 0 |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Separator
Texto o caracteres como una coma o punto y coma que se inserta entre el texto de cada objeto de canalización.
De forma predeterminada, los objetos de canalización se unen sin un separador. Si se establece la separador de campo de salida variable de preferencia ($OFS), ese valor se usa a menos que se especifique este parámetro.
Nota:
Cuando se establece $OFS su valor se usa para combinar matrices cuando se convierten en cadenas hasta que la variable se restablece a $null. Dado que el uso de $OFS puede tener efectos no deseados en otro lugar del código, es mejor usar el parámetro separador de en su lugar.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 1 |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-SingleQuote
Ajusta el valor de cadena de cada objeto de canalización entre comillas simples.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
SingleQuote
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-UseCulture
Utiliza el separador de lista de la referencia cultural actual como delimitador de los elementos. Para buscar el separador de lista de una cultura, use el siguiente comando: (Get-Culture).TextInfo.ListSeparator.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | False |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.