Nahradiť text z bežných textových súborov z príkazového riadku

Obsah:

Nahradiť text z bežných textových súborov z príkazového riadku
Nahradiť text z bežných textových súborov z príkazového riadku

Video: Nahradiť text z bežných textových súborov z príkazového riadku

Video: Nahradiť text z bežných textových súborov z príkazového riadku
Video: Prolific USB Windows 8.1 and Windows 10 driver issue resolved - Robojax - YouTube 2024, Apríl
Anonim

Veľmi užitočná funkcia, ktorá chýba v knižnici Windows nástrojov príkazového riadku, je schopnosť nahradiť text v 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, 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 skripty 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 skript umiestnite na miesto v premennej Windows PATH, teraz máte k dispozícii túto funkčnosť.

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:

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

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

FORFILES /P “%UserProfile%” /M *.cfg /S /C “Cmd /C ReplaceText @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

'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

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, ktoré sa zobrazia ako rozbaľovacie okná. 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 oprávneniami správcu):

CScript //H:CScript

Spustite skript ReplaceText explicitne pomocou príkazu CScript:

CScript “C:PathToReplaceText.vbs” //B FileName 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ť.

Sťahujte skript ReplaceText zo stránky SysadminGeek.com

Odporúča: