none
VBS para trocar string em um arquivo .txt RRS feed

  • Pergunta

  • Existe alguma rotina ou .vbs que troque uma determinada string em um arquivo .txt?

    Exemplo: procurar string "nome:" e trocar a proxima palavra "joao" no arquivo teste.txt.

    Exemplo2: "nome: maria da silva" ficaria "nome: joao da silva"

    vale lembrar que não sei o nome portanto não posso procurar por maria.

    Poderiam ajudar?

    quarta-feira, 30 de setembro de 2015 19:08

Todas as Respostas

  • Explica melhor o parâmetro de busca no arquivo.

    Já fiz um bem parecido

    quarta-feira, 30 de setembro de 2015 19:20
  • Segue um exemplo que achei aqui mesmo no forun

    strArquivo_Original = "arquivo_original.txt"
    strArquivo_Novo = "arquivo_novo.txt"
    
    strProcurada = "carro"
    strNova = "bola"
    
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile_Original = objFSO.OpenTextFile(strArquivo_Original, 1)
    Set objFile_Novo = objFSO.CreateTextFile(strArquivo_Novo)
    
    
    Do Until objFile_Original.AtEndOfStream
    
      strLinha = objFile_Original.ReadLine
    
      objFile_Novo.writeline replace(strLinha,strProcurada,strNova)
    
    Loop
    
    
    objFile_Original.Close
    objFile_Novo.Close
    
    objFSO.Deletefile strArquivo_Original
    objFSO.MoveFile strArquivo_Novo , strArquivo_Original
    
    

    link

    https://social.technet.microsoft.com/Forums/pt-BR/2d73b3b2-e0de-4224-9432-34ae78d36582/bat-ou-vbs-para-trocar-string-em-arquivo-txt?forum=scriptadminpt


    • Editado Carlos_rodrigues quarta-feira, 30 de setembro de 2015 19:25 correção
    • Sugerido como Resposta Carlos_rodrigues segunda-feira, 5 de outubro de 2015 19:21
    quarta-feira, 30 de setembro de 2015 19:24
  • Bom dia!

    Carlos,

    O que eu procuro é bem parecido porem a palavra que quero alterar é desconhecida exemplo.

    Quero alterar uma palabra que venha depois de uma outra palavra exemplo:

    Carro

    sempre que o script encontrar a palavra carro a proxima palavra ele vai trocar.

    Texto:

    Aquele carro é verde

    quando eu rodar o script ficaria

    Aquele carro (Palavra a ser trocada) verde.

    sempre que achar a palavra quero alterar a proxima palavra para uma outra.

    sexta-feira, 2 de outubro de 2015 11:45
  • Easy peasy!

    (Get-Content C:\String.txt) -Replace 'Name:*.*', 'Name: NewString' | Set-Content C:\String.txt

    • Sugerido como Resposta Carlos_rodrigues segunda-feira, 5 de outubro de 2015 19:21
    sexta-feira, 2 de outubro de 2015 13:00
  • Opa! rsrsr

    mesma coisa em um linha, bem melhor!


    sexta-feira, 2 de outubro de 2015 16:25
  • nossa essa solução foi otima mas está faltando somente uma coisa para ficar como preciso, preciso que ela não altere todas as palavras adiante e sim somente a proxima o *.* está limpando todo o conteudo da linha.
    sexta-feira, 2 de outubro de 2015 20:23
  • Apenas para encerrar o assunto desta thread... Suponha que eu tenha um arquivo com o conteúdo abaixo:

    <CustomerName>Pedro Batista</CustomerName>
    <CustomerAddress>Rua Dos Pombos</CustomerAddress>
    <CustomerMail>Pedro.Batista@nosafeforwork.com</CustomerAddress>

    Digamos que o nome do cliente Pedro Batista esteja errado no campo <CustomerName></CustomerName> e que o nome correto seja Paulo Batista. Para realizar esta tarefa - alterar o nome de um para outro - eu preciso executar o script abaixo para localizar a palavra Pedro e substitui-la por Paulo no arquivo.

    $Content = Get-Content C:\TEMP\Content.txt
    ForEach ($Line in $Content) {
        If ($Line -match '^<CustomerName>(\w+)\s.*') {
            $Pattern = "<CustomerName>" + $Matches[1]
            (Get-Content C:\TEMP\Content.txt).Replace($Pattern,'<CustomerName>Paulo') | Set-Content C:\TEMP\Content.txt
        }
    }

    • Sugerido como Resposta 4HorsemenOfDaIT quinta-feira, 26 de novembro de 2015 01:35
    quarta-feira, 11 de novembro de 2015 21:26