Manipuler les chaînes de caractères
Les bases
1. Qu’est-ce qu’une chaîne de caractères ?
La gestion des chaînes de caractères est chose courante dans les différents types de langages de programmation. Il s’agit donc d’une partie importante à maîtriser correctement ou, tout du moins, un minimum.
Commençons tout d’abord par définir ce qu’est une chaîne de caractères ou string en anglais.
Le terme string est couramment utilisé dans PowerShell et de manière plus globale sur Windows (par exemple dans la base de registre). En termes informatiques, une chaîne de caractères est un type de données correspondant à une suite ordonnée de plusieurs caractères. Autrement dit, c’est un ensemble de symboles faisant partie d’un jeu de caractères qui est lui-même défini par le code ASCII.
2. Qu’est-ce que le code ASCII ?
Dans un ordinateur, les caractères ne peuvent pas être stockés dans la mémoire. Ceux-ci seront stockés sous forme numérique. Le code ASCII permet de transcrire un caractère en une valeur numérique.
3. Chaîne de caractères en exemple
Une chaîne de caractères peut être une simple ligne entre guillemets :
"Bonjour et bienvenue dans notre livre"
ou encore :
"Damien Van Robaeys et Jérôme Bezet-Torres"
ou une suite de chiffres :
"123456"
ou un texte entre des quotes :
'Apprenons PowerShell ensemble'
Cela peut également être une chaîne vide :
""
''
ou vide contenant un espace :
" "
' '
Une chaîne de caractères peut également être le contenu d’un fichier texte :

4. Distinguer une chaîne de caractères avec PowerShell...
Méthodes disponibles pour gérer les chaînes
Différentes méthodes existent pour gérer les chaînes de caractères.
Pour savoir ce qu’est une méthode, consultez le chapitre La gestion des objets.
Pour lister les méthodes, nous utiliserons la cmdlet Get-Member sur un objet String (chaîne de caractères).
<Objet> | Get-Member
Nous trierons ensuite le résultat du Get-Member sur la propriété Method.
<Objet> | Get-Member -MemberType Method
Reprenons l’exemple précédent :
$Texte = "Apprenons PowerShell ensemble"
La cmdlet Get-Member sur la variable $Texte triée sur les méthodes nous donnera le résultat suivant :
PS C:\Users\damien.vanrobaeys> $Texte | get-member -MemberType Method
Name
----
Clone
CompareTo
Contains
CopyTo
EndsWith
Equals
GetEnumerator
GetHashCode
GetType
GetTypeCode
IndexOf
IndexOfAny
Insert
IsNormalized
LastIndexOf
LastIndexOfAny
Normalize
PadLeft
PadRight
Remove
Replace
Split
StartsWith
Substring
ToBoolean
ToByte
ToChar
ToCharArray
ToDateTime
ToDecimal
ToDouble
ToInt16
ToInt32
ToInt64
ToLower
ToLowerInvariant
ToSByte
ToSingle
ToString
ToType
ToUInt16
ToUInt32
ToUInt64
ToUpper
ToUpperInvariant
Trim
TrimEnd
TrimStart
Manipulation des chaînes avec les méthodes
Dans les exemples suivants, nous utiliserons la chaîne de caractères suivante :
$Texte = "Apprenons PowerShell ensemble"
1. Compter le nombre de caractères
Pour compter le nombre de caractères que contient un élément, nous utiliserons la propriété Length.
$Texte = "Apprenons PowerShell ensemble"
Le résultat sera 29 caractères.
Cela peut également s’écrire :
("Apprenons PowerShell ensemble").Length
29
2. Passer le contenu en majuscules
Dans notre fichier, le contenu est majoritairement en minuscules. Nous allons tout passer en majuscules.
La méthode à utiliser pour cela est ToUpper().
$Texte = "Apprenons PowerShell ensemble"
$Texte.ToUpper()
APPRENONS POWERSHELL ENSEMBLE
Cela peut également s’écrire :
("Apprenons PowerShell ensemble").ToUpper()
APPRENONS POWERSHELL ENSEMBLE
3. Passer le contenu en minuscules
Utilisons la chaîne de caractères suivante :
$Texte = "APPRENONS POWERSHELL ENSEMBLE"
Nous allons tout passer en minuscules.
La méthode à utiliser pour cela est ToLower().
$Texte = "APPRENONS POWERSHELL ENSEMBLE"
$Texte.ToLower()
apprenons powershell ensemble
Cela peut également s’écrire :
("APPRENONS POWERSHELL ENSEMBLE").ToLower()
apprenons powershell ensemble
4. Remplacer des caractères
En parcourant les méthodes disponibles, nous remarquons celle nommée Replace. Il s’agit d’une des méthodes les plus utiles pour la gestion des fichiers et chaînes de caractères.
Cette méthode nous permettra de modifier/remplacer un caractère se trouvant dans une chaîne et s’utilise ainsi :
<Chaîne...