If-Koubou

Înlocuiți textul în fișiere text simple din linia de comandă

Înlocuiți textul în fișiere text simple din linia de comandă (Cum să)

O funcție foarte utilă care lipsește din biblioteca Windows a instrumentelor din linia de comandă este capacitatea de a înlocui textul în fișiere text. O funcție ca aceasta poate fi utilizată pentru o varietate de sarcini practice pe care mulți administratori de sistem le efectuează, cum ar fi:

  • Actualizați fișierele de configurare / INI pentru a înlocui căile UNC.
  • Informațiile de actualizare a informațiilor în masă stocate în fișiere INI pe un server Terminal / Citrix.
  • Utilizați împreună cu scripturile pentru a implementa date "șablonate" și apoi aplicați valori fișierelor copiate.

Soluția noastră este un VBScript care interfețează cu funcția Visual Basic Replace. Prin plasarea acestui script într-o locație în variabila Windows PATH, aveți acum această funcție disponibilă la dispoziția dumneavoastră.

utilizări

Odată ce vă aflați în sistem, puteți apela scriptul pur și simplu utilizând comanda ReplaceText. Câteva exemple ilustrează modalitățile prin care puteți folosi acest lucru:

Înlocuiți cuvântul "null" cu "n / a" în fișierul C: DataValues.csv:

Înlocuiți textul "C: DataValues.csv" null n / a

Scanați toate fișierele INI din folderul C: Utilizatori (sub directoare) care înlocuiesc toate aparițiile "Server = Old" cu "Server = New" utilizând o căutare insensibilă pentru caractere:

FORFILES / P "C: Utilizatori" / M * .ini / S / C "Cmd / C ReplaceText Server @ Server = Server vechi =

Scanați toate fișierele CFG din profilul utilizatorului curent înlocuind "p @ ssw0rd" cu "PA $$ woRd" utilizând o căutare sensibilă la majuscule:

FORFILES / P "% UserProfile%" / M * .cfg / S / C "Cmd / C ÎnlocuireText @path p @ ssw0rd PA $$ woRd"

După cum puteți vedea mai jos, scenariul este foarte simplu și poate fi modificat cu ușurință pentru a se adapta oricăror situații speciale pe care le aveți. Alternativ, poate doriți să creați copii ale scriptului care codifică anumite valori, astfel încât să puteți executa comanda cu un dublu-clic și / sau să vă permiteți să le distribuiți cu ușurință altora.

Scriptul

"Înlocuiți textul
"Scris de: Jason Faulkner
„SysadminGeek.com

"Acest script trebuie plasat într-un folder specificat în variabila PATH a sistemului.

Utilizare (WScript):
"ReplaceText Nume_file OldText NewText [/ I]

'/ I (opțional) - De potrivire a textului nu se face diferența între litere mari și mici

Setați oArgs = WScript.Arguments

intCaseSensitive = 0
Pentru i = 3 la oArgs.Count-1
Dacă UCase (oArgs (i)) = "/ I" Apoi intCaseSensitive = 1
Următor →

Setați oFSO = CreateObject ("Scripting.FileSystemObject")

Dacă nu oFSO.FileExists (oArgs (0)) Apoi
WScript.Echo "Fișierul specificat nu există."
altfel
Setați oFile = oFSO.OpenTextFile (oArgs (0), 1)
strText = oFile.ReadAll
oFile.Close

strText = Înlocuiește (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive)

Setați oFile = oFSO.OpenTextFile (oArgs (0), 2)
oFile.WriteLine strText
oFile.Close
Sfârșit Dacă

Note Aditionale

În mod implicit, Windows utilizează WScript pentru a executa fișiere VBScript (VBS). Singura problemă care poate apărea este că orice eroare și / sau mesaje din script vor apărea ca casete pop-up. Pentru un instrument de linie de comandă, este recomandabil ca aceste mesaje să fie afișate în consola. Există câteva moduri în care puteți realiza acest lucru.

Schimbați manualul implicit al fișierelor VBScript în CScript executând această comandă din promptul de comandă (cu drepturi de administrator):

CScript // H: CScript

Rulați scriptul ReplaceText în mod explicit utilizând comanda CScript:

CScript "C: PathToReplaceText.vbs" // B Numele fișierului OldText NewText [/ I]

Ca un caz special, executarea ReplaceText dintr-un script batch implică în mod normal CScript ca motor utilizat, indiferent de manualul implicit. Veți dori cu siguranță să testați acest lucru, deși înainte de a vă baza pe această funcție.

Descărcați scriptul ReplaceText de la SysadminGeek.com