Vrlo korisna funkcija koja nedostaje u Windows knjižnici alata naredbenog retka je mogućnost zamjene teksta u običnim tekstualnim datotekama. Funkcija poput ove može se koristiti za različite praktične zadatke koje mnogi administratori sustava obavljaju, kao što su:
Naše rješenje je VBScript koji je povezan s funkcijom Visual Basic Replace. Postavljanjem ove skripte na lokaciju u varijabli PATH sustava Windows, sada vam ta funkcionalnost stoji na raspolaganju.
Jednom na vašem sustavu, skriptu možete nazvati jednostavnim naredbom ReplaceText. Nekoliko primjera ilustrira načine na koje možete koristiti ovo:
Zamijenite riječ "null" s "n / a" u datoteci C: DataValues.csv:
ZamijeniText "C: DataValues.csv" null n / a
Skenirajte sve INI datoteke u mapi C: Korisnici (+ poddnevnici) zamjenjujući sve pojave "Server = Old" sa "Server = New" pomoću neosjetljivog pretraživanja:
FORFILES / P "C: Korisnici" / M * .ini / S / C "Cmd / C ReplaceText @path poslužitelj = Staro poslužitelj = Novo / I"
Skenirajte sve CFG datoteke u trenutnom profilu korisnika zamijenivši "p @ ssw0rd" pomoću "PA $$ woRd" pomoću traženja osjetljivih na velika i mala slova:
FORFILES / P "% UserProfile%" / M * .cfg / S / C "Cmd / C ReplaceText @ put p @ ssw0rd PA $$ woRd"
Kao što možete vidjeti u nastavku, skripta je vrlo jednostavna i lako se može mijenjati kako bi se prilagodile posebnim situacijama koje ste imali. Alternativno, možete stvoriti kopije skripte koja hardcode određene vrijednosti tako da možete izvršiti naredbu dvostrukim klikom i / ili dopustiti da ga lako distribuirati drugima.
'Zamijeni tekst 'Ova skripta treba biti smještena u mapu navedenu u varijabli PATH sustava. 'Uporaba (WScript): '/ I (nije obavezno) - Tekstno podudaranje nije velika i mala slova Postavite oArgs = WScript.Arguments intCaseSensitive = 0 Postavite oFSO = CreateObject ("Scripting.FileSystemObject") Ako ne oFSO.FileExists (oArgs (0)) Zatim strText = Zamijeni (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive) Postavite oFile = oFSO.OpenTextFile (oArgs (0), 2)
'Napisao: Jason Faulkner
„SysadminGeek.com
'ReplaceText FileName OldText NewText [/ I]
Za i = 3 do oArgs.Count-1
Ako UCase (oArgs (i)) = "/ I" Zatim intCaseSensitive = 1
Sljedeći
WScript.Echo "Specifična datoteka ne postoji."
Drugo
Postavite oFile = oFSO.OpenTextFile (oArgs (0), 1)
strText = oFile.ReadAll
oFile.Close
oFile.WriteLine strText
oFile.Close
Završi ako
Prema zadanim postavkama, Windows koristi WScript za izvršavanje VBScript (VBS) datoteka. Jedini problem koji može uzrokovati jest bilo koja pogreška i / ili poruke iz skripte pojavit će se kao skočne okvire. Za alat za naredbeni redak najbolje je da se te poruke prikazuju na konzoli. Postoji nekoliko načina na koje to možete postići.
Promijenite zadani rukovatelj VBScript datoteka na CScript pokretanjem ove naredbe iz naredbenog retka (s pravima administratora):
CScript // H: CScript
Izričito pokrenite ReplaceText skriptu pomoću naredbe CScript:
CSript "C: PathToReplaceText.vbs" // B FileName OldText NewText [/ I]
Kao poseban slučaj, izvršavanje ReplaceTexta iz skupne skripte obično podrazumijeva CScript kao motor koji se koristi bez obzira na zadani rukovatelj. Svakako ľelite testirati ovo prije nego se oslanjate na tu funkcionalnost.
Preuzmite ReplaceText skriptu iz SysadminGeek.com