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