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

Índice:

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

Vídeo: Substituir texto em arquivos de texto sem formatação da linha de comando

Vídeo: Substituir texto em arquivos de texto sem formatação da linha de comando
Vídeo: COMO DESCOBRIR MODELO DA PLACA MÃE, PROCESSADOR, MEMÓRIA E MUITO MAIS DO SEU PC (sem programas) - YouTube 2024, Abril
Anonim

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:

  • Atualize os arquivos de configuração / INI para substituir os caminhos UNC.
  • Informações de usuários de atualização em massa armazenadas em arquivos INI em um servidor Terminal / Citrix.

  • Use em conjunto com scripts para implantar dados "modelados" e depois aplicar valores aos arquivos copiados.

Nossa solução é um VBScript que faz interface com a função Visual Basic Replace. Colocando 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/a

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:

FORFILES /P “C:Users” /M *.ini /S /C “Cmd /C ReplaceText @path Server=Old Server=New /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:

FORFILES /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. Como alternativa, talvez você queira 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

'Replace Text 'Written by: Jason Faulkner 'SysadminGeek.com

'This script should be placed in a folder specified in your system's PATH variable.

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

' /I (optional) - Text matching is not case sensitive

Set oArgs = WScript.Arguments

intCaseSensitive = 0 For i = 3 to oArgs.Count-1 If UCase(oArgs(i)) = '/I' Then intCaseSensitive = 1 Next

Set oFSO = CreateObject('Scripting.FileSystemObject')

If Not oFSO.FileExists(oArgs(0)) Then WScript.Echo 'Specified file does not exist.' Else Set oFile = oFSO.OpenTextFile(oArgs(0), 1) strText = oFile.ReadAll oFile.Close

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

Set oFile = oFSO.OpenTextFile(oArgs(0), 2) oFile.WriteLine strText oFile.Close End If

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 pelas quais você pode realizar 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:

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

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

Baixar ReplaceText Script de SysadminGeek.com

Recomendado: