web-dev-qa-db-fra.com

Comment convertir un objet de tableau en chaîne dans PowerShell?

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?

148
jrara
$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
254
Roman Kuzmin

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.

29
Jeremy Saunders
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
16
TCC

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'

Exemple

9
Steven Penny

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 
3
Ameer Deen
$a = "This", "Is", "a", "cat"

foreach ( $Word in $a ) { $sent = "$sent $Word" }
$sent = $sent.Substring(1)

Write-Host $sent
0
Underverse