Wie kann ich ein Array-Objekt in einen String konvertieren?
Ich habe es versucht:
$a = "This", "Is", "a", "cat"
[system.String]::Join(" ", $a)
ohne Glück . Welche unterschiedlichen Möglichkeiten bietet PowerShell?
powershell
powershell-2.0
jrara
quelle
quelle
Antworten:
Verwenden Sie doppelte Anführungszeichen (und verwenden Sie optional das Trennzeichen
$ofs
)Verwenden von Operator Join
Konvertierung nach verwenden
[string]
quelle
$ofs
ist hierIch fand, dass das
Out-String
Weiterleiten des Arrays an das Cmdlet auch gut funktioniert.Beispielsweise:
Es hängt von Ihrem Endziel ab, welche Methode am besten geeignet ist.
quelle
$a
$a | out-string
($a | out-string).getType()
= String.$a.getType()
= Objekt []. Wenn Sie $ a als Argument für eine Methode verwenden, die eine Zeichenfolge erwartet (z.invoke-expression
B.),$a | out-string
hat dies einen klaren Vorteil.Zeile zwei führt die Operation aus und gibt sie an den Host aus, ändert jedoch nicht $ a:
quelle
Aus einem Rohr
Write-Host
Beispiel
quelle
$ofs
istOutput Field Separator
Variable , die verwendet wird , wenn ein Array in Zeichenfolge für die Ausgabe umgewandelt wird. Hier wird es im Skriptblock festgelegt, der den Zeichenfolgenwert der Eingabe (Array aus der Pipe) zurückgibt, die vom Befehl ausgeführt wird&
. Ich wusste$ofs
vorher nichts darüber und&
akzeptierte einen Skriptblock als ArgumentSie können den folgenden Typ angeben:
Überprüfen des Typs:
Bestätigt:
Ausgabe von $ a:
quelle
quelle