Înlocuiți textul în fișiere text simple din linia de comandă
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 asemănătoare poate fi utilizată pentru o varietate de sarcini practice pe care mulți administratori ai sistemului 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șierele INI de 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 din 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 prin simpla utilizare a comenzii 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: Users (+ sub directories) care înlocuiesc toate aparițiile "Server = Old" cu "Server = New" utilizând o căutare insensibilă la litere mici:
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 minuscule:
FORFILES / P "% UserProfile%" / M * .cfg / S / C "Cmd / C ÎnlocuireText @path p @ ssw0rd PA $$ woRd"
După cum puteți vedea mai jos, scriptul este foarte simplu și poate fi modificat cu ușurință pentru a se potrivi cu orice situație specială pe care o aveți. Alternativ, este posibil să 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 director 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
Terminați 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 erori ș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ă de obicei CScript ca motor folosit, 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