Concaténer des chaînes dans PowerShell

Marion Paul Kenneth Mendoza 30 janvier 2023
  1. Utilisation de l’opérateur + pour concaténer des chaînes dans PowerShell
  2. Utiliser des séparateurs pour concaténer des chaînes dans PowerShell
  3. Concaténer des chaînes avec des entiers dans PowerShell
  4. Utiliser la substitution de chaîne pour concaténer des chaînes dans PowerShell
  5. Utilisation de l’opérateur -f pour concaténer des chaînes dans PowerShell
  6. Utilisation de l’opérateur -join pour concaténer des chaînes dans PowerShell
  7. Utilisation du générateur de chaînes et de la fonction append() pour concaténer des chaînes dans PowerShell
  8. Utilisation de la fonction concat() pour concaténer des chaînes dans PowerShell
Concaténer des chaînes dans PowerShell

Dans PowerShell, nous réalisons la concaténation de chaînes de plusieurs manières ; Cependant, bien que PowerShell ait sa propre fonction intégrée concat() (dont nous parlerons également plus tard), il existe des moyens plus simples de joindre diverses variables de chaîne.

Avant d’énumérer toutes les méthodes de concaténation de chaînes, il est préférable de déclarer certaines variables de chaîne que nous utiliserons comme exemples.

$str1 = "First"
$str2 = "Second"
$str3 = "Third"

Vous trouverez ci-dessous toutes les méthodes possibles pour concaténer vos chaînes dans PowerShell.

Utilisation de l’opérateur + pour concaténer des chaînes dans PowerShell

La manière la plus simple de concaténer des chaînes consiste à utiliser l’opérateur +. La concaténation ne fonctionne avec l’opérateur + que si les deux variables sont des variables de type chaîne. Le script traitera mathématiquement l’expression si l’opérateur + est utilisé sur deux ou plusieurs variables de type entiers.

Exemple de code :

$concatString = $str1 + $str2 + $str3
Write-Output $concatString

Production :

FirstSecondThird

Utiliser des séparateurs pour concaténer des chaînes dans PowerShell

Ce n’est pas seulement l’opérateur + que nous devons utiliser pour concaténer des chaînes, mais nous pouvons également utiliser des séparateurs comme des virgules (,). N’oubliez pas d’entourer vos variables de chaîne de guillemets doubles "", ou la variable interprétera vos valeurs de chaîne séparées comme une propriété de liste.

Exemple de code :

$concatString = "$str1 , $str2 , $str3"
Write-Output $concatString

Production :

First , Second , Third

N’oubliez pas non plus que cela ne fonctionne pas uniquement avec des virgules. Le fait d’entourer vos valeurs de chaîne de guillemets doubles fait de votre variable de chaîne une expression littérale. WYSIWYG (Ce que vous voyez est ce que vous obtenez.)

Exemple de code :

$concatString = "Who came in $str1 , $str2 , and $str3 Place?"
Write-Output $concatString

Production :

Who came in First , Second, and Third Place?

Concaténer des chaînes avec des entiers dans PowerShell

Si nous essayons de concaténer des chaînes avec des entiers, une erreur de type invalide se produira. Dans l’exemple ci-dessous, la nouvelle variable $concatString prendra le type de la variable $int1 comme type de données, qui est un entier. Cela se produit parce que $int1 est appelé en premier dans l’expression $int1 + $str1.

Exemple de code :

$int1 = 0
$concatString = $int1 + $str1 #int variable before string variable
Write-Output $concatString

Production :

Cannot convert value "First" to type "System.Int32". Error: "Input string was not in a correct format."
At line:3 char:1
+ $concatString = $int1 + $str1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastFromStringToInteger

Si nous prenons la variable de chaîne $str1 et la plaçons en premier sur l’expression, la concaténation sera réussie et $int1 sera converti automatiquement en une valeur de chaîne.

Exemple de code :

$int1 = 0
$concatString = $str1 + $int1 #str variable before int variable
Write-Output $concatString

Production :

First0

Utiliser la substitution de chaîne pour concaténer des chaînes dans PowerShell

Alternativement, nous pouvons effectuer une autre méthode de concaténation en utilisant la substitution de chaîne. Cette méthode fonctionnera également lors de la concaténation de chaînes avec différents types de données.

Exemple de code :

$int1 = 0
$concatString = "$($int1) , $($str2)"
Write-Output $concatString

Production :

0 , Second

Utilisation de l’opérateur -f pour concaténer des chaînes dans PowerShell

Une autre façon de concaténer des chaînes consiste à utiliser l’opérateur -f. L’opérateur -f utilise le passage de variables de chaîne en tant qu’arguments sur une valeur de chaîne prédéfinie.

Exemple de code :

$concatString = "{0}.{1}.{2}." -f $str1,$str2,$str3
Write-Output $concatString

Production :

First.Second.Third

Utilisation de l’opérateur -join pour concaténer des chaînes dans PowerShell

Les opérateurs -join agissent de la même manière avec les séparateurs, car nous devons passer un séparateur de chaîne en tant que paramètre.

Exemple de code :

$concatString = $str1,$str2,$str3 -join "!"
Write-Output $concatString

Production :

First!Second!Third

Utilisation du générateur de chaînes et de la fonction append() pour concaténer des chaînes dans PowerShell

Le générateur de chaînes est l’un des moyens complexes de concaténer des chaînes, car nous devons appeler un type d’objet distinct System.Text.StringBuilder pour lancer ce processus. L’objet utilise ensuite la fonction append() pour concaténer les chaînes, puis reconvertit le nouvel objet en une valeur de chaîne à l’aide de la fonction ToString().

Exemple de code :

$concatString = New-Object -TypeName System.Text.StringBuilder
$null = $concatString.Append($str1)
$null = $concatString.Append($str2)
$null = $concatString.Append($str3)
$concatString = $concatString.ToString()

Write-Output $concatString

Production :

FirstSecondThird

Utilisation de la fonction concat() pour concaténer des chaînes dans PowerShell

Enfin, nous avons la propre fonction concat() de PowerShell.

Exemple de code :

$concatString = [System.String]::Concat($str1,".",$str2,".",$str3)
Write-Output $concatString

Production :

First.Second.Third
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Article connexe - PowerShell String