Početna » kako da » Zamijenite tekst u običnim tekstualnim datotekama iz naredbenog retka

    Zamijenite tekst u običnim tekstualnim datotekama iz naredbenog retka

    Vrlo korisna funkcija koja nedostaje u Windows biblioteci alata naredbenog retka je mogućnost zamjene teksta u običnim tekstualnim datotekama. Ovakva funkcija može se koristiti za razne praktične zadatke koje obavljaju mnogi administratori sustava, kao što su:

    • Ažurirajte konfiguracijske / INI datoteke kako biste zamijenili UNC staze.
    • Masovne informacije o ažuriranju korisnika pohranjene u INI datotekama na Terminal / Citrix poslužitelju.
    • Koristite zajedno sa skriptama za postavljanje 'templated' podataka, a zatim primijenite vrijednosti na kopirane datoteke.

    Naše rješenje je VBScript koji se povezuje s funkcijom Visual Basic Replace. Postavljanjem ove skripte na lokaciju u vašoj varijabli Windows PATH sada imate na raspolaganju tu funkcionalnost.

    koristi

    Jednom na vašem sustavu, možete pozvati skriptu jednostavnim korištenjem naredbe ReplaceText. Nekoliko primjera ilustrira načine na koje to možete upotrijebiti:

    Zamijenite riječ "null" s "n / a" u datoteci C: DataValues.csv:

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

    Skenirajte sve INI datoteke u mapi C: Korisnici (+ pod direktorije) zamjenjujući sve pojave "Poslužitelj = Stari" s "Poslužitelj = Novo" pomoću pretraživanja bez osjetljivosti:

    FORFILES / P “C: Korisnici” / M * .ini / S / C “Cmd / C ReplaceText @path Server = Stari poslužitelj = Novo / I”

    Skenirajte sve CFG datoteke u trenutnom profilu korisnika, zamjenjujući "p @ ssw0rd" s "PA $$ woRd" pomoću pretraživanja osjetljivog na velika i mala slova:

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

    Kao što možete vidjeti u nastavku, skripta je vrlo jednostavna i lako se može modificirati kako bi udovoljila svim posebnim situacijama koje možda imate. Alternativno, možda ćete htjeti stvoriti kopije skripte koje hardcode određene vrijednosti tako da možete izvršiti naredbu s dvostrukim klikom i / ili vam omogućiti da lako distribuirati drugima \ t.

    Skripta

    'Zamijeni tekst
    Autor: Jason Faulkner
    „SysadminGeek.com

    'Ova skripta treba biti smještena u mapu navedenu u PATH varijabli vašeg sustava.

    "Upotreba (WScript):
    'ReplaceText Naziv datoteke OldText NewText [/ I]

    '/ I (izborno) - Usklađivanje teksta nije osjetljivo na velika i mala slova

    Postavite oArgs = WScript.Arguments

    intCaseSensitive = 0
    Za i = 3 do oArgs.Count-1
    Ako je UCase (oArgs (i)) = "/ I" Zatim intCaseSensitive = 1
    Sljedeći

    Postavi oFSO = CreateObject ("Scripting.FileSystemObject")

    Ako nije oFSO.FileExists (oArgs (0)) Tada
    WScript.Echo "Navedena datoteka ne postoji."
    Drugo
    Postavi oFile = oFSO.OpenTextFile (oArgs (0), 1)
    strText = oFile.ReadAll
    oFile.Close

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

    Postavi oFile = oFSO.OpenTextFile (oArgs (0), 2)
    oFile.WriteLine strText
    oFile.Close
    Završi ako

    dodatne napomene

    Prema zadanim postavkama, Windows koristi WScript za izvršavanje datoteka VBScript (VBS). Jedini problem koji može uzrokovati je bilo kakve pogreške i / ili poruke iz skripte će se pojaviti kao skočni prozori. Za alat naredbenog retka najbolje je da se te poruke prikazuju u konzoli. Postoji nekoliko načina na koje možete to postići.

    Promijenite zadani rukovatelj VBScript datoteka u CScript pokretanjem ove naredbe iz naredbenog retka (s administratorskim pravima):

    CScript // H: CScript

    Pokrenite skriptu ReplaceText eksplicitno pomoću naredbe CScript:

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

    Kao poseban slučaj, izvršavanje ReplaceTexta iz batch skripte obično podrazumijeva CScript kao motor koji se koristi bez obzira na zadani rukovatelj. To ćete svakako htjeti testirati prije oslanjanja na ovu funkcionalnost.

    Preuzmite ReplaceText skriptu sa SysadminGeek.com