VocĂȘ sabia que pode detectar se uma sequĂȘncia termina em um caractere especĂfico ou se inicia em uma no PowerShell? Thomas Rayner compartilhou anteriormente no CANITPRO.NET como isso pode ser facilmente feito usando expressĂ”es regulares ou mais simplesmente conhecido como Regex.

Original no
blog .
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 sequĂȘncia termina em uma barra invertida. Nos dois Ășltimos exemplos, o script verifica a sequĂȘncia para ver se começa com uma.
O padrĂŁo de expressĂŁo regular que estĂĄ sendo correspondido para os dois primeiros Ă© \\ $. O que isso significa? Bem, a primeira parte \\ significa "uma barra invertida" (porque \ Ă© o caractere de escape, basicamente estamos escapando do caractere de escape. A Ășltima parte $ Ă© o sinal para o fim da linha. Efetivamente, o que temos Ă© "qualquer coisa afinal, onde a Ășltima coisa na linha Ă© uma barra invertida â, que Ă© exatamente o que estamos procurando.
Nos dois segundos exemplos, acabei de mover o \\ para o inĂcio da linha e comecei com ^ em vez de terminar com $ porque ^ Ă© o sinal para o inĂcio da linha.
Agora vocĂȘ pode fazer coisas assim:
$dir = 'c:\temp' if ($dir -notmatch '\\$') { $dir += '\' } $dir #returns 'c:\temp\'
Aqui, o script verifica se a string 'carrega' termina em uma barra invertida e, se nĂŁo, estou anexando uma.