Labai naudinga funkcija, kuri trūksta iš Windows komandų eilutės įrankių bibliotekos, yra galimybė tekstą pakeisti tekstiniais failais. Tokia funkcija gali būti naudojama daugeliui praktinių užduočių, kurias atlieka daug sistemos administratorių, pavyzdžiui:
- Atnaujinti konfigūracijos / INI failus pakeisti UNC kelius.
-
Masinės atnaujinimo vartotojo informacija, saugoma INI failuose terminalo / "Citrix" serveryje.
- Naudokite kartu su scenarijais, kad įdiegtumėte "šabloninius" duomenis, o tada nukopijuotų failų vertes.
Mūsų sprendimas yra VBScript, kuris sąveikauja su funkcija "Visual Basic Replace". Įdėdami šį scenarijų į jūsų "Windows PATH" kintamojo vietą, dabar ši funkcija jums prieinama.
Naudoja
Kai jūsų sistemoje galite skambinti scenarijų, paprasčiausiai naudokite komandą "ReplaceText". Keli pavyzdžiai parodys būdus, kaip galite tai panaudoti:
Pakeiskite žodį "null" į "n / a" failo C: DataValues.csv:
ReplaceText “C:DataValues.csv” null n/a
Patikrinkite visus INI failus aplanke C: Users (+ sub directories), pakeičiančius visus "Server = Old" įvykius su "Server = New", naudodami neatsitiktinę paiešką:
FORFILES /P “C:Users” /M *.ini /S /C “Cmd /C ReplaceText @path Server=Old Server=New /I”
Nuskaitykite visus CFG failus dabartiniame vartotojo profilyje, pakeičiant "p @ ssw0rd" į "PA $$ woRd", naudodami kontekstinę paiešką:
FORFILES /P “%UserProfile%” /M *.cfg /S /C “Cmd /C ReplaceText @path p@ssw0rd PA$$woRd”
Kaip matote toliau, scenarijus yra labai paprastas ir gali būti lengvai pakeistas, kad būtų pritaikytos bet kokios ypatingos situacijos, kurioms esate. Be to, galbūt norėsite kurti scenarijaus kopijas, kurios kietai nuskaito tam tikras vertes, kad galėtumėte paleisti komandą dvigubu paspaudimu ir (arba) leisti lengvai ją platinti kitiems.
Scenarijus
'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
papildomi užrašai
Pagal numatytuosius nustatymus "Windows" naudoja "WScript", norėdami paleisti "VBScript" (VBS) failus. Vienintelė problema, kurią gali sukelti, yra bet kokios scenarijaus klaidos ir (arba) pranešimai, rodomi kaip langeliai. Komandinės eilutės įrankiui geriausia, kad šie pranešimai būtų rodomi konsolėje. Yra keletas būdų, kaip tai padaryti.
Pakeiskite numatytąjį VBScript failų tvarkyklę į CScript, paleisdami šią komandą iš komandų eilutės (su administratoriaus teisėmis):
CScript //H:CScript
Iš karto paleiskite "ReplaceText" scenarijų naudodami komandą CScript:
CScript “C:PathToReplaceText.vbs” //B FileName OldText NewText [/I]
Kaip ypatingas atvejis, vykdant "ReplaceText" iš partijos scenarijų, CScript paprastai naudojamas kaip variklis, naudojamas nepriklausomai nuo numatytojo apdorojimo. Neabejotinai norėsite išbandyti tai, prieš pasikliauję šia funkcija.
Atsisiųskite "ReplaceText" scenarijų iš "SysadminGeek.com"