Comment puis-je convertir un objet de tableau en chaîne?
J'ai essayé:
$a = "This", "Is", "a", "cat"
[system.String]::Join(" ", $a)
sans chance. Quelles sont les différentes possibilités dans PowerShell?
$a = 'This', 'Is', 'a', 'cat'
Utilisation de guillemets doubles (et éventuellement du séparateur $ofs
])
# This Is a cat
"$a"
# This-Is-a-cat
$ofs = '-' # after this all casts work this way until $ofs changes!
"$a"
Utiliser l'opérateur rejoindre
# This-Is-a-cat
$a -join '-'
# ThisIsacat
-join $a
Utilisation de la conversion en [string]
# This Is a cat
[string]$a
# This-Is-a-cat
$ofs = '-'
[string]$a
J'ai constaté que la canalisation de la matrice vers la cmdlet Out-String
fonctionne également.
Par exemple:
_PS C:\> $a | out-string
This
Is
a
cat
_
Cela dépend de votre objectif final quant à la meilleure méthode à utiliser.
1> $a = "This", "Is", "a", "cat"
2> [system.String]::Join(" ", $a)
La ligne deux effectue l'opération et la renvoie à l'hôte, mais ne modifie pas $ a:
3> $a = [system.String]::Join(" ", $a)
4> $a
Ceci est un chat
5> $a.Count
1
D'une pipe
# This Is a cat
'This', 'Is', 'a', 'cat' | & {"$input"}
# This-Is-a-cat
'This', 'Is', 'a', 'cat' | & {$ofs='-';"$input"}
Write-Host
# This Is a cat
Write-Host 'This', 'Is', 'a', 'cat'
# This-Is-a-cat
Write-Host -Separator '-' 'This', 'Is', 'a', 'cat'
Vous pouvez spécifier le type comme ceci:
[string[]] $a = "This", "Is", "a", "cat"
Vérification du type:
$a.GetType()
Confirme:
IsPublic IsSerial Name BaseType -------- -------- ---- -------- Vrai Vrai Chaîne [] System.Array
Sortie de $ a:
PS C: \> $ a Ce Est Un Chat
$a = "This", "Is", "a", "cat"
foreach ( $Word in $a ) { $sent = "$sent $Word" }
$sent = $sent.Substring(1)
Write-Host $sent