Pagina inicial » como » Substituir texto em arquivos de texto sem formatação da linha de comando

    Substituir texto em arquivos de texto sem formatação da linha de comando

    Uma função muito útil que está faltando na biblioteca do Windows de ferramentas de linha de comando é a capacidade de substituir texto em arquivos de texto simples. Uma função como essa pode ser usada para uma variedade de tarefas práticas que muitos administradores do sistema executam, como:

    • Atualizar arquivos de configuração / INI para substituir os caminhos UNC.
    • Informações de usuário de atualização em massa armazenadas em arquivos INI em um servidor Terminal / Citrix.
    • Use em conjunto com scripts para implantar dados 'modelados' e, em seguida, aplique valores aos arquivos copiados.

    Nossa solução é um VBScript que faz interface com a função Visual Basic Replace. Ao colocar esse script em um local na variável PATH do Windows, você agora tem essa funcionalidade disponível à sua disposição.

    Usos

    Uma vez no seu sistema, você pode chamar o script simplesmente usando o comando ReplaceText. Alguns exemplos ilustrarão maneiras pelas quais você pode usar isto:

    Substitua a palavra “null” por “n / a” no arquivo C: DataValues.csv:

    ReplaceText “C: DataValues.csv” null n / d

    Analise todos os arquivos INI na pasta C: Users (+ sub-diretórios) substituindo todas as ocorrências de "Server = Old" por "Server = New" usando uma pesquisa sem distinção entre maiúsculas e minúsculas:

    FORFOS / P “C: Usuários” / M * .ini / S / C “Cmd / C ReplaceText @path Servidor = Servidor Antigo = Novo / I”

    Analise todos os arquivos CFG no perfil do usuário atual, substituindo "p @ ssw0rd" por "PA $$ woRd" usando uma pesquisa sensível a maiúsculas e minúsculas:

    FORFOS / P “% UserProfile%” / M * .cfg / S / C “Cmd / C ReplaceText @path p @ ssw0rd PA $$ woRd”

    Como você pode ver abaixo, o script é muito simples e pode ser facilmente modificado para acomodar qualquer situação especial que você possa ter. Alternativamente, você pode querer criar cópias do script que codificam determinados valores para que você possa executar o comando com um clique duplo e / ou permitir que você o distribua facilmente para outras pessoas..

    O script

    'Substituir texto
    Escrito por: Jason Faulkner
    'SysadminGeek.com

    'Este script deve ser colocado em uma pasta especificada na variável PATH do seu sistema.

    'Uso (WScript):
    'ReplaceText FileName OldText NewText [/ I]

    '/ I (opcional) - A correspondência de texto não diferencia maiúsculas de minúsculas

    Definir oArgs = WScript.Arguments

    intCaseSensitive = 0
    Para i = 3 para oArgs.Count-1
    Se UCase (oArgs (i)) = "/ I" Então intCaseSensitive = 1
    Próximo

    Definir oFSO = CreateObject ("Scripting.FileSystemObject")

    Se não oFSO.FileExists (oArgs (0)) então
    WScript.Echo "Arquivo especificado não existe."
    Outro
    Set oFile = oFSO.OpenTextFile (oArgs (0), 1)
    strText = oFile.ReadAll
    oFile.Close

    strText = Substituir (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive)

    Set oFile = oFSO.OpenTextFile (oArgs (0), 2)
    oFile.WriteLine strText
    oFile.Close
    Fim se

    Notas Adicionais

    Por padrão, o Windows usa o WScript para executar arquivos VBScript (VBS). O único problema que isso pode causar é que quaisquer erros e / ou mensagens do script aparecerão como caixas pop-up. Para uma ferramenta de linha de comando, é melhor que essas mensagens sejam exibidas no console. Existem algumas maneiras de conseguir isso.

    Altere o manipulador padrão de arquivos VBScript para CScript, executando este comando no prompt de comando (com direitos de administrador):

    CScript // H: CScript

    Execute o script ReplaceText explicitamente usando o comando CScript:

    C: “C: PathToReplaceText.vbs” // B NomeDoArquivo OldText NewText [/ I]

    Como um caso especial, a execução de ReplaceText a partir de um script em lote normalmente indica o CScript como o mecanismo usado, independentemente do manipulador padrão. Você definitivamente vai querer testar isso antes de confiar nesta funcionalidade.

    Baixar ReplaceText Script de SysadminGeek.com