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:
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ă.
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.
"Înlocuiți textul "Acest script trebuie plasat într-un folder specificat în variabila PATH a sistemului. Utilizare (WScript): '/ I (opțional) - De potrivire a textului nu se face diferența între litere mari și mici Setați oArgs = WScript.Arguments intCaseSensitive = 0 Setați oFSO = CreateObject ("Scripting.FileSystemObject") Dacă nu oFSO.FileExists (oArgs (0)) Apoi strText = Înlocuiește (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive) Setați oFile = oFSO.OpenTextFile (oArgs (0), 2)
"Scris de: Jason Faulkner
„SysadminGeek.com
"ReplaceText Nume_file OldText NewText [/ I]
Pentru i = 3 la oArgs.Count-1
Dacă UCase (oArgs (i)) = "/ I" Apoi intCaseSensitive = 1
Următor →
WScript.Echo "Fișierul specificat nu există."
altfel
Setați oFile = oFSO.OpenTextFile (oArgs (0), 1)
strText = oFile.ReadAll
oFile.Close
oFile.WriteLine strText
oFile.Close
Sfârșit Dacă
Î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