Domača » kako » Zamenjajte besedilo v datoteki z navadnim besedilom iz ukazne vrstice

    Zamenjajte besedilo v datoteki z navadnim besedilom iz ukazne vrstice

    Zelo uporabna funkcija, ki je manjka v knjižnici Windows ukaznih vrstic, je zmožnost zamenjave besedila v navadnih besedilnih datotekah. Funkcija, kot je ta, se lahko uporablja za različne praktične naloge, ki jih opravlja veliko skrbnikov sistema, na primer:

    • Posodobite konfiguracijske / INI datoteke in nadomestite poti UNC.
    • Informacije o množičnem posodabljanju, shranjene v datotekah INI na strežniku Terminal / Citrix.
    • Uporabite skupaj s skripti za razmestitev 'templated' podatkov in nato uporabite vrednosti za kopirane datoteke.

    Naša rešitev je VBScript, ki je vmesnik s funkcijo Visual Basic Replace. Z namestitvijo te skripte na lokacijo v spremenljivki Windows PATH imate zdaj na voljo to funkcijo.

    Uporabe

    Ko ste na sistemu, lahko skript pokličete tako, da preprosto uporabite ukaz ReplaceText. Nekaj ​​primerov bo ponazorilo, kako lahko to uporabite:

    V datoteki C: DataValues.csv besedo »null« zamenjajte z »n / a«:

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

    Preglejte vse INI datoteke v mapi C: Uporabniki (+ podmaiki) in zamenjajte vse pojavitve »Strežnik = Staro« s »Strežnik = Novo« z iskanjem, neobčutljivimi na velika

    FORFILES / P “C: Uporabniki” / M * .ini / S / C “Cmd / C ReplaceText @path Server = Staro strežnik = Novo / I”

    Skenirajte vse datoteke CFG v profilu trenutnega uporabnika in zamenjajte »p @ ssw0rd« z »PA $$ woRd« z uporabo preučevanja velikih in malih črk:

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

    Kot lahko vidite spodaj, je scenarij zelo preprost in ga je mogoče preprosto spremeniti, da se prilagodi morebitnim posebnim situacijam. Morda boste želeli ustvariti kopije skripta, ki določajo posebne vrednosti tako, da lahko ukaze izvedete z dvojnim klikom in / ali z omogočanjem preproste distribucije drugim.

    Scenarij

    »Zamenjaj besedilo
    Avtor: Jason Faulkner
    'SysadminGeek.com

    Ta skript naj bo postavljen v mapo, ki je navedena v spremenljivki PATH vašega sistema.

    "Uporaba (WScript):
    'ReplaceText Ime datoteke OldText NewText [/ I]

    '/ I (izbirno) - Ujemanje besedila ni občutljivo na velike in male črke

    Nastavi oArgs = WScript.Arguments

    intCaseSensitive = 0
    Za i = 3 do oArgs.Count-1
    Če je UCase (oArgs (i)) = "/ I" Potem intCaseSensitive = 1
    Naslednji

    Nastavi oFSO = CreateObject ("Scripting.FileSystemObject")

    Če ni oFSO.FileExists (oArgs (0)) Nato
    WScript.Echo "Navedena datoteka ne obstaja."
    Drugače
    Nastavi oFile = oFSO.OpenTextFile (oArgs (0), 1)
    strText = oFile.ReadAll
    Zapri

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

    Nastavi oFile = oFSO.OpenTextFile (oArgs (0), 2)
    oFile.WriteLine strText
    Zapri
    End If

    Dodatne opombe

    Windows privzeto uporablja WScript za izvajanje datotek VBScript (VBS). Edini problem, ki ga lahko povzroči, so napake in / ali sporočila iz skripta, ki se prikažejo kot pojavna okna. Za orodje ukazne vrstice je najbolje, da se ta sporočila prikažejo v konzoli. Obstaja nekaj načinov, kako to lahko dosežete.

    Spremenite privzeti upravljalnik datotek VBScript v CScript s tem ukazom iz ukaznega poziva (s pravicami skrbnika):

    CScript // H: CScript

    Zaženite skript ReplaceText izrecno z ukazom CScript:

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

    V posebnem primeru izvedba ReplaceTexta iz paketnega skripta običajno vključuje CScript kot motor, ki se uporablja, ne glede na privzeti upravljalnik. To boste zagotovo želeli preizkusiti, preden se boste zanašali na to funkcionalnost.

    Prenesite skript ReplaceText iz SysadminGeek.com