¿Cómo puedo convertir un objeto de matriz en cadena?
Lo intenté:
$a = "This", "Is", "a", "cat"
[system.String]::Join(" ", $a)
sin suerte . ¿Cuáles son las diferentes posibilidades en PowerShell?
powershell
powershell-2.0
jrara
fuente
fuente
Respuestas:
Usar comillas dobles (y opcionalmente usar el separador
$ofs
)Usando operador unirse
Usando la conversión a
[string]
fuente
$ofs
está documentado aquíDescubrí que canalizar la matriz al
Out-String
cmdlet también funciona bien.Por ejemplo:
Depende de su objetivo final en cuanto a qué método es el mejor para usar.
fuente
$a
tendría el mismo efecto que$a | out-string
($a | out-string).getType()
= Cadena.$a.getType()
= Objeto []. Si usa $ a como argumento para un método que espera una cadena (comoinvoke-expression
por ejemplo), entonces$a | out-string
tiene una clara ventaja.La línea dos realiza la operación y envía al host, pero no modifica $ a:
fuente
De una pipa
Host de escritura
Ejemplo
fuente
$ofs
es laOutput Field Separator
que se utiliza cuando una matriz se convierte en una cadena para la salida. Aquí se establece en el bloque de script que devuelve el valor de cadena de la entrada (matriz de la tubería) que se ejecuta mediante el comando&
. No lo sabía$ofs
antes, además de&
aceptar un bloque de guión como argumentoPuede especificar un tipo como este:
Comprobando el tipo:
Confirma:
Salida de $ a:
fuente
fuente