Como posso escapar do caracter de aspas duplas para uso em findstr na linha de comando do PowerShell?

1

Esta linha de comando funciona em cmd.exe:

findstr /l /i /s /c:"key=\"Smtp" *.config

No entanto, rodando no PowerShell 2 no Windows 7 Ultimate x64, o findstr parece congelar, não importa qual combinação eu use. Estou pesquisando um arquivo de brinquedo que criei (apenas um na pasta) que tem apenas essa entrada, por isso sei que não está demorando mais:

<add key="SmtpHost" value="localhost">

Mas essas variações que eu tentei nunca retornam no PowerShell (elas também não fornecem o prompt > > para indicar uma string não terminada).

findstr /l /i /s /c:"key='"Smtp" *.config
findstr /l /i /s /c:"'"" *.config
findstr /l /i /s /c:"key=""Smtp" *.config
findstr /l /i /s /c:'key="Smtp' *.config

Quando eu altero para usar expressões regulares, com um curinga, funcionará:

findstr /r /i /s /c:"key=.Smtp" *.config

Mas como faço para passar aspas duplas para o findstr no PowerShell com sucesso?

    
por ZeroBugBounce 16.08.2011 / 22:38

2 respostas

2

Tente isto:

findstr /l /i /s /c:"key=\'"Smtp" *.config

você precisa escapar de posh e \ "'

mais informações aqui: link

    
por 17.08.2011 / 08:25
2

Existe alguma funcionalidade que você está recebendo do Findstr que você não pode obter dos próprios cmdlets do Powershell?

Get-ChildItem .\* -Include *.config -Recurse | Select-String '"key="Smtp"'
    
por 17.08.2011 / 16:07