Zamijenite tekst u obične tekstualne datoteke iz naredbene linije

Sadržaj:

Zamijenite tekst u obične tekstualne datoteke iz naredbene linije
Zamijenite tekst u obične tekstualne datoteke iz naredbene linije

Video: Zamijenite tekst u obične tekstualne datoteke iz naredbene linije

Video: Zamijenite tekst u obične tekstualne datoteke iz naredbene linije
Video: 20 Geschenke Tipps für alle Echten Werkzeugfans | Zum Verschenken oder Behalten bestens geeignet - YouTube 2024, Travanj
Anonim

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:

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

'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

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:

CScript “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

Preporučeni: