If-Koubou

Zamijenite tekst u obične tekstualne datoteke iz naredbene linije

Zamijenite tekst u obične tekstualne datoteke iz naredbene linije (Kako da)

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:

  • Ažurirajte konfiguracijske / INI datoteke za zamjenu staza UNC-a.
  • Podaci o masovnim ažuriranjima pohranjeni u INI datotekama na Terminalu / Citrix poslužitelju.
  • Koristite zajedno s skriptama za implementaciju podataka "predloženih", a zatim primijenite vrijednosti na kopirane datoteke.

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.

koristi

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.

Skripta

'Zamijeni tekst
'Napisao: Jason Faulkner
„SysadminGeek.com

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

'Uporaba (WScript):
'ReplaceText FileName OldText NewText [/ I]

'/ I (nije obavezno) - Tekstno podudaranje nije velika i mala slova

Postavite oArgs = WScript.Arguments

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

Postavite oFSO = CreateObject ("Scripting.FileSystemObject")

Ako ne oFSO.FileExists (oArgs (0)) Zatim
WScript.Echo "Specifična datoteka ne postoji."
Drugo
Postavite oFile = oFSO.OpenTextFile (oArgs (0), 1)
strText = oFile.ReadAll
oFile.Close

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

Postavite 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 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