Powershell, adiciona automaticamente “\” antes de determinados caracteres

0

Eu escrevi um script que pega cada linha em um arquivo .txt, uma linha por vez, e antes de prosseguir para a próxima linha, uma ação é executada. Digamos que este seja o arquivo de texto:

[Foo]
(Bar)

Para torná-lo mais simples de entender, digamos que é isso que meu script faz:

Reads the first line in the text file and sets the line as $currentLine; [Foo]
Echo the $currentLine; [Foo]
Reads the next line in the text file and sets the line as $currentLine; (Bar)
Echo the $currentLine; (Bar)

Meu problema é que preciso que "[Foo]" seja "\[Foo\]" e "(Bar)" "\(Bar\)" use corretamente as linhas no meu script real . Existe uma maneira eficiente de fazer isso? Ou preciso escrever algo que verifique "(" , ")" , "[" e "]" e substitua-os por "\(" , "\)" , "\[" e "\]" ?

    
por root 08.10.2013 / 02:01

2 respostas

2

Tanto quanto eu posso dizer (e não tenho certeza de que posso dizer corretamente), você está procurando pela função .replace .

Como exemplo, pode-se fazer o seguinte:

$a = "(bob)"
$a.Replace('(',"\(")

Retorna \(bob

Todas as substituições podem ser feitas desta forma

    
por 08.10.2013 / 02:46
0

Eu não posso colocar isso em um comentário sem ter os caracteres substituídos, então estou colocando isso em uma resposta. Eu uso "ren" o tempo todo como eu comentei. ou seja, "REN *(BAR).* *(USA).*" fará o que é necessário. Eu acho que pode ser óbvio que você pode facilmente renomear curingas. Você também pode usar "?" no filespec para significar um caractere curinga de um único caractere.

    
por 10.10.2013 / 02:59