Principes de base de PowerShell: définition de la fin d'une ligne avec un caractère spécifique

Savez-vous que vous pouvez déterminer si une chaîne se termine par un caractère spécifique ou commence par lui dans PowerShell? Thomas Rayner a précédemment partagé sur CANITPRO.NET combien il est facile de faire avec des expressions régulières ou, plus simplement, Regex.




Merci d'avoir traduit notre MSP, Lev Bulanov .

Considérez les exemples suivants:


'something\' -match '\\$' #returns true 'something' -match '\\$' #returns false '\something' -match '^\\' #returns true 'something' -match '^\\' #returns false 

Dans les deux premiers exemples, le script vérifie si la ligne se termine par une barre oblique inverse. Dans les deux derniers exemples, le script vérifie la chaîne pour déterminer si elle commence par une barre oblique.

Le modèle d'expression régulière pour les deux premiers ressemble à "\\ $". Qu'est-ce que cela signifie? Eh bien, la première partie \\ signifie "barre oblique inverse" (parce que \ est un caractère d'échappement, et nous échappons essentiellement au caractère d'échappement. La dernière partie de $ est le signal de fin de ligne. En fait, nous n'avons "rien du tout, où le dernier ce qui est en jeu, c'est la barre oblique inverse », et c'est exactement ce que nous recherchons.


Dans les deux exemples suivants, j'ai simplement déplacé \\ au début de la ligne et commencé par ^, pas $, car ^ est le signal pour commencer la ligne.


Maintenant, vous pouvez faire des choses comme:


 $dir = 'c:\temp' if ($dir -notmatch '\\$') { $dir += '\' } $dir #returns 'c:\temp\' 

Ici, le script vérifie si la ligne «ours» se termine par une barre oblique inverse, et sinon, je vais l'ajouter.

Source: https://habr.com/ru/post/fr441428/


All Articles