Úvodná » ako » Nahradiť text v obyčajných textových súboroch z príkazového riadku

    Nahradiť text v obyčajných textových súboroch z príkazového riadku

    Veľmi užitočná funkcia, ktorá chýba v knižnici Windows nástrojov príkazového riadku, je schopnosť nahradiť text v obyčajných textových súboroch. Funkcia, ako je táto, môže byť použitá pre rôzne praktické úlohy, ktoré vykonáva mnoho administrátorov systému, ako napríklad:

    • Aktualizujte konfiguračné / INI súbory, aby ste nahradili cesty UNC.
    • Hromadné aktualizácie informácií o používateľoch uložených v súboroch INI na serveri Terminal / Citrix.
    • Používajte v spojení so skriptmi na nasadenie "šablónovaných" dát a potom aplikujte hodnoty na skopírované súbory.

    Naše riešenie je VBScript, ktorý je prepojený s funkciou Visual Basic Replace. Tým, že ste tento skript umiestnili na miesto vo vašej premennej Windows PATH, teraz máte túto funkciu k dispozícii.

    použitie

    Akonáhle je vo vašom systéme, môžete skript zavolať jednoducho pomocou príkazu ReplaceText. Niekoľko príkladov objasní spôsoby, ako môžete použiť toto:

    Nahradiť slovo "null" s "n / a" v súbore C: DataValues.csv:

    Nahradiť text "C: DataValues.csv" null n / a

    Skenujte všetky súbory INI v priečinku C: Users (+ sub directories), ktorý nahradí všetky výskyty "Server = Old" "Server = New" pomocou vyhľadávania nepodstatných pre malé a veľké písmená:

    FORFILES / P "C: Používatelia" / M * .ini / S / C "Cmd / C ReplaceText @path Server = Starý server =

    Skenujte všetky súbory CFG v profile používateľa, ktoré nahradia "p @ ssw0rd" pomocou "PA $$ woRd" pomocou vyhľadávania citlivého na malé a veľké písmená:

    FORFILES / P "% UserProfile%" / M * .cfg / S / C "Cmd / C NahradiťText @path p @ ssw0rd PA $$ woRd"

    Ako môžete vidieť nižšie, skript je veľmi jednoduchý a môže byť ľahko upravený tak, aby vyhovoval všetkým špeciálnym situáciám, ktoré môžete mať. Môžete tiež vytvoriť kópie skriptov, ktoré obsahujú hardcode konkrétnych hodnôt, aby ste mohli spustiť príkaz dvojitým kliknutím a / alebo umožniť ľahko ho rozdeliť ostatným.

    Scenár

    "Nahradiť text
    "Napísal: Jason Faulkner
    , SysadminGeek.com

    'Tento skript by mal byť umiestnený v priečinku špecifikovanom v premennej PATH vášho systému.

    'Použitie (WScript):
    'ReplaceText Názov súboru OldText NewText [/ I]

    '/ I (voliteľné) - Rozpísanie textu nerozlišuje veľké a malé písmená

    Nastavte oArgs = WScript.Arguments

    intCaseSensitive = 0
    Pre i = 3 až oArgs.Count-1
    Ak je UCase (oArgs (i)) = "/ I" Potom intCaseSensitive = 1
    Ďalšie

    Nastavte oFSO = CreateObject ("Scripting.FileSystemObject")

    Ak nie je oFSO.FileExists (oArgs (0)) Potom
    WScript.Echo "Zadaný súbor neexistuje."
    inak
    Nastavte oFile = oFSO.OpenTextFile (oArgs (0), 1)
    strText = oFile.ReadAll
    oFile.Close

    strText = Nahradiť (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive)

    Nastavte oFile = oFSO.OpenTextFile (oArgs (0), 2)
    oFile.WriteLine strText
    oFile.Close
    Koniec Ak

    Doplňujúce Poznámky

    Windows štandardne používa WScript na spustenie súborov VBScript (VBS). Jediným problémom, ktorý môže spôsobiť, sú chyby a / alebo správy zo skriptu. Pri príkazovom riadku je najlepšie, aby sa tieto správy zobrazovali v konzole. Existuje niekoľko spôsobov, ako to dosiahnuť.

    Zmeniť predvolený popisovač súborov VBScript na CScript spustením tohto príkazu z príkazového riadka (s právami správcu):

    CScript // H: CScript

    Spustite skript ReplaceText explicitne pomocou príkazu CScript:

    CScript "C: PathToReplaceText.vbs" // B Názov súboru OldText NewText [/ I]

    Ako zvláštny prípad, vykonanie funkcie ReplaceText zo dávkového skriptu zvyčajne znamená CScript ako použitý motor bez ohľadu na predvolený popisovač. Určite to budete chcieť vyskúšať, aj keď sa opieráte o túto funkčnosť.

    Stiahnite si skript ReplaceText zo stránky SysadminGeek.com