Homepage » come » Sostituisci testo in file di testo normale dalla riga di comando

    Sostituisci testo in file di testo normale dalla riga di comando

    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 varietà di compiti pratici che molti amministratori di sistema eseguono, come ad esempio:

    • Aggiorna configurazione / file INI per sostituire 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: Utenti" / M * .ini / S / C "Cmd / C ReplaceText @path Server = Vecchio server = Nuovo / 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

    'Sostituisci testo
    'Scritto da: Jason Faulkner
    'SysadminGeek.com

    'Questo script deve essere inserito in una cartella specificata nella variabile PATH del sistema.

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

    '/ I (opzionale) - La corrispondenza del testo non è sensibile al maiuscolo / minuscolo

    Imposta oArgs = WScript.Arguments

    intCaseSensitive = 0
    Per i = 3 a oArgs.Count-1
    Se UCase (oArgs (i)) = "/ I" Quindi intCaseSensitive = 1
    Il prossimo

    Imposta oFSO = CreateObject ("Scripting.FileSystemObject")

    Se non oFSO.FileExists (oArgs (0)) Quindi
    WScript.Echo "Il file specificato non esiste."
    Altro
    Imposta oFile = oFSO.OpenTextFile (oArgs (0), 1)
    strText = oFile.ReadAll
    oFile.Close

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

    Imposta oFile = oFSO.OpenTextFile (oArgs (0), 2)
    oFile.WriteLine strText
    oFile.Close
    Finisci se

    Note aggiuntive

    Per impostazione predefinita, Windows utilizza WScript per eseguire file VBScript (VBS). L'unico problema che ciò può causare è che eventuali errori e / o messaggi dallo script verranno visualizzati 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 farlo.

    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