Hvordan konverterer jeg et arrayobjekt til en streng i PowerShell?

Hvordan kan jeg konvertere et array-objekt til streng?

Jeg har prøvd:

$a = "This", "Is", "a", "cat"
[system.String]::Join(" ", $a)

uten hell. Hva er forskjellige muligheter i PowerShell?

Løsning
$a = 'This', 'Is', 'a', 'cat'

Bruke doble anførselstegn (og eventuelt bruke skilletegn $ofs)

# This Is a cat
"$a"

# This-Is-a-cat
$ofs = '-' # after this all casts work this way until $ofs changes!
"$a"

Bruke operator join

# This-Is-a-cat
$a -join '-'

# ThisIsacat
-join $a

Bruke konvertering til [string]

# This Is a cat
[string]$a

# This-Is-a-cat
$ofs = '-'
[string]$a
Kommentarer (6)

Jeg fant ut at piping av arrayet til Out-String cmdlet fungerer også bra.

For eksempel:

PS C:\> $a  | out-string

This
Is
a
cat

Hvilken metode som er best å bruke, avhenger av målet ditt.

Kommentarer (2)

Du kan spesifisere type slik:

[string[]] $a = "This", "Is", "a", "cat"

Kontrollerer typen:

$a.GetType()

Bekrefter:

    IsPublic IsSerial Name BaseType
    -------- -------- ---- --------
True     True     String[]                                 System.Array

Utdata $a:

PS C:\> $a
Dette
er
a
cat
Kommentarer (0)