Comment diviser une chaîne en deux variables dans PowerShell
Si vous avez une chaîne de texte dans Microsoft PowerShell, il est souvent utile de la diviser en plusieurs variables. Par exemple, vous pourriez avoir le prénom et le nom d'un utilisateur séparés par un espace, ou un numéro de téléphone commençant par un indicatif régional. Vous pouvez utiliser la fonction intégrée Split de PowerShell pour ce faire. D'autres fonctions sont disponibles pour faire analyser une chaîne par PowerShell d'autres manières.
Comprendre Microsoft PowerShell
PowerShell est un outil en ligne de commande et un langage de programmation fourni par Microsoft. Il remplace l'ancien outil de script batch Windows et DOS, qui est également encore disponible sur la plupart des versions de Windows.
Il est souvent utilisé pour combiner la sortie de plusieurs programmes ou transmettre des données d'un programme à un autre, il est donc utile de l'utiliser pour manipuler des chaînes.
La fonction Split de PowerShell
Si vous avez une chaîne dans PowerShell et que vous voulez la diviser sur un certain caractère, vous pouvez le faire en utilisant la fonction intégrée Split. Écrivez soit s -Split, où s est la variable contenant la chaîne, soit appelez s.split. La fonction renverra un tableau contenant chacun des éléments de la chaîne divisée, que vous pouvez capturer dans une variable comme
$a = s.split()
Vous pouvez assigner ces éléments à des variables en accédant aux éléments individuels comme $a[0], $a[1] et ainsi de suite, ou les garder dans le tableau si c'est plus utile.
Diviser des chaînes est souvent utile lorsque vous devez décomposer une saisie utilisateur ou la sortie d'un autre programme en ses parties constitutives.
Options de Split dans PowerShell
Par défaut, PowerShell divisera la chaîne sur les caractères d'espacement, y compris les espaces, les sauts de ligne et les tabulations. Dans certains cas, vous voudrez peut-être diviser la chaîne sur un autre caractère, comme une virgule ou un trait d'union, ou une chaîne comme « et ».
Pour ce faire, faites du caractère ou de la chaîne souhaités sur lesquels diviser le second argument de la fonction split, en écrivant s.split(",") ou s -split "," pour diviser sur une virgule, par exemple. Quel que soit le caractère que vous choisissez de donner à PowerShell comme délimiteur, ou séparateur, sera omis de toutes les chaînes de résultat.
Vous pouvez également choisir un nombre maximal de chaînes dans lesquelles diviser en fournissant cela comme argument supplémentaire. Par exemple, "a,b,c,d".split(",",2) donnera un tableau avec les éléments "a" et "b,c,d" tandis que "a,b,c,d".split(",") donnera un tableau avec chaque lettre dans sa propre chaîne.
Nettoyer une chaîne dans PowerShell
Vous pouvez faire en sorte que PowerShell nettoie une chaîne, ou supprime les caractères excédentaires du début ou de la fin, en utilisant la fonction trim. Par défaut, elle supprimera les espaces du début et de la fin de la chaîne.
Par exemple, " a ".trim() donnera le résultat "a". Vous pouvez spécifier d'autres caractères que vous souhaitez supprimer de la chaîne comme argument, donc "^$a ".trim(" ^") donnera le résultat "$a".
Vous pouvez utiliser les fonctions TrimStart et TrimEnd pour ne supprimer les caractères que du début ou de la fin de la chaîne.
C'est souvent utile lorsque vous avez des données obtenues d'un utilisateur qui les a saisies dans une zone de saisie avec des espaces ou des sauts de ligne en trop à la fin.
La fonction Join de PowerShell
Comme dans d'autres langages de programmation, la fonction join de PowerShell est essentiellement l'opposé de split. Elle prend plusieurs chaînes et les combine ensemble avec un délimiteur donné ou sans espace du tout.
Par exemple, -join ("a","b","c") donnera le résultat "abc", tandis que "a","b","c" -join " " donnera la chaîne de résultat "a b c". Cela peut être utile lorsque vous avez plusieurs variables que vous devez combiner en une seule pour les stocker dans un fichier, les passer à une autre commande ou les afficher à un utilisateur.
