Noções básicas do PowerShell: Definindo o final de uma linha com um caractere específico

Você sabia que pode determinar se uma sequência termina com um caractere específico ou começa com ele no PowerShell? Thomas Rayner compartilhou anteriormente no CANITPRO.NET o quão fácil é fazer com expressões regulares ou, mais simplesmente, Regex.




Obrigado por traduzir o nosso MSP, Lev Bulanov .

Considere os seguintes exemplos:


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

Nos dois primeiros exemplos, o script verifica se a linha termina com uma barra invertida. Nos dois últimos exemplos, o script verifica a sequência para determinar se começa com uma barra.

O padrão regex para os dois primeiros se parece com "\\ $". O que isso significa? Bem, a primeira parte \\ significa "barra invertida" (porque \ é um caractere de escape, e nós basicamente escapamos do caractere de escape. A última parte de $ é o sinal de fim de linha. Na verdade, não temos "nada, onde o último o que está em jogo é a barra invertida ", e é exatamente isso que estamos procurando.


Nos dois exemplos a seguir, eu simplesmente mudei \\ para o início da linha e comecei com ^, não $, porque ^ é o sinal para iniciar a linha.


Agora você pode fazer coisas como:


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

Aqui, o script verifica se a linha 'bears' termina com uma barra invertida e, se não, eu a adicionarei.

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


All Articles