Conceptos básicos de PowerShell: definición del final de una línea con un carácter específico

¿Sabe que puede determinar si una cadena termina con un carácter específico o comienza con él en PowerShell? Thomas Rayner previamente compartió en CANITPRO.NET lo fácil que es hacerlo con expresiones regulares o, más simplemente, Regex.




Gracias por traducir nuestro MSP, Lev Bulanov .

Considere los siguientes ejemplos:


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

En los primeros dos ejemplos, el script verifica si la línea termina con una barra invertida. En los últimos dos ejemplos, el script verifica la cadena para determinar si comienza con una barra diagonal.

El patrón de expresiones regulares para los dos primeros se parece a "\\ $". ¿Qué significa esto? Bueno, la primera parte \\ significa "barra invertida" (porque \ es un carácter de escape, y básicamente escapamos del carácter de escape. La última parte de $ es la señal de final de línea. De hecho, no tenemos "nada en absoluto, donde el último lo que está en la línea es la barra diagonal inversa ", y eso es exactamente lo que estamos buscando.


En los siguientes dos ejemplos, simplemente moví \\ al comienzo de la línea y comencé con ^, no con $, porque ^ es la señal para comenzar la línea.


Ahora puedes hacer cosas como:


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

Aquí el script verifica si la línea de 'osos' termina con una barra diagonal inversa, y si no, la agregaré.

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


All Articles