Sostituisci testo in file di testo normale dalla riga di comando

Sommario:

Sostituisci testo in file di testo normale dalla riga di comando
Sostituisci testo in file di testo normale dalla riga di comando

Video: Sostituisci testo in file di testo normale dalla riga di comando

Video: Sostituisci testo in file di testo normale dalla riga di comando
Video: Rimuovere icone trasparenti dalla Barra di Applicazioni oTaskbar di Windows 10 - YouTube 2024, Novembre
Anonim

Una funzione molto utile che manca nella libreria di Windows degli strumenti della riga di comando è la possibilità di sostituire il testo in file di testo. Una funzione come questa può essere utilizzata per una serie di compiti pratici che molti amministratori di sistema eseguono, come ad esempio:

  • Aggiorna configurazione / file INI per sostituire i percorsi UNC.
  • Aggiornamento di massa delle informazioni dell'utente memorizzate nei file INI su un server Terminal / Citrix.

  • Utilizzare insieme agli script per distribuire i dati 'modelli' e quindi applicare i valori ai file copiati.

La nostra soluzione è un VBScript che si interfaccia con la funzione di sostituzione di Visual Basic. Inserendo questo script in una posizione nella variabile PATH di Windows, ora questa funzionalità è disponibile.

usi

Una volta sul tuo sistema, puoi chiamare lo script semplicemente usando il comando Sostituisci testo. Alcuni esempi illustreranno come puoi usare questo:

Sostituisci la parola "null" con "n / a" nel file C: DataValues.csv:

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

Esegui la scansione di tutti i file INI nella cartella C: Users (+ sub directories) sostituendo tutte le occorrenze di "Server = Old" con "Server = New" utilizzando una ricerca senza distinzione tra maiuscole e minuscole:

FORFILES /P “C:Users” /M *.ini /S /C “Cmd /C ReplaceText @path Server=Old Server=New /I”

Esegui la scansione di tutti i file CFG nel profilo dell'utente corrente sostituendo "p @ ssw0rd" con "PA $$ woRd" utilizzando una ricerca distinzione tra maiuscole e minuscole:

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

Come puoi vedere qui sotto, lo script è molto semplice e può essere facilmente modificato per adattarsi a qualsiasi situazione speciale che potresti avere. In alternativa, è possibile creare copie dello script che memorizzano determinati valori in modo da poter eseguire il comando con un doppio clic e / o consentire di distribuirlo facilmente ad altri.

Il copione

'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

Note aggiuntive

Per impostazione predefinita, Windows utilizza WScript per eseguire file VBScript (VBS). L'unico problema che ciò può causare sono eventuali errori e / o messaggi dallo script appariranno come finestre popup. Per uno strumento da riga di comando, è meglio che questi messaggi vengano visualizzati nella console. Ci sono un paio di modi in cui puoi realizzare questo.

Modificare il gestore predefinito dei file VBScript in CScript eseguendo questo comando dal prompt dei comandi (con diritti di amministratore):

CScript //H:CScript

Esegui lo script ReplaceText esplicitamente usando il comando CScript:

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

Come caso speciale, l'esecuzione di ReplaceText da uno script batch implica in genere CScript come motore utilizzato indipendentemente dal gestore predefinito. Sicuramente vorrete provarlo prima di fare affidamento su questa funzionalità.

Scarica ReplaceText Script da SysadminGeek.com

Consigliato: