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.