Ļoti noderīga funkcija, kas trūkst no komandrindas rīku Windows bibliotēkas, ir iespēja aizstāt tekstu ar teksta failiem. Šādu funkciju var izmantot dažādiem praktiskiem uzdevumiem, ko daudzi sistēmas administratori veic, piemēram:
- Atjauniniet konfigurācijas / INI failus, lai aizstātu UNC ceļus.
-
Masveida atjaunināšanas lietotāja informācija, kas tiek glabāta INI failos Terminal / Citrix serverī.
- Izmantojiet kopā ar skriptiem, lai izvietotu "šablonētos" datus, un pēc tam jāpielieto vērtības kopētām failiem.
Mūsu risinājums ir VBScript, kas saskaras ar funkciju Visual Basic Replace. Novietojot šo skriptu savā Windows PATH mainīgā vietā, šī funkcija tagad ir pieejama jūsu rīcībā.
Izmanto
Tiklīdz savā sistēmā jūs varat izsaukt skriptu, vienkārši izmantojiet komandu ReplaceText. Daži piemēri ilustrēs veidus, kā to izmantot:
Nomainiet vārdu "null" ar "n / a" C: DataValues.csv failā:
ReplaceText “C:DataValues.csv” null n/a
Pārbaudiet visus INI failus mapē C: Users (+ sub directories), aizstājot visus notikumus "Server = Old" ar "Server = New", izmantojot nevērīgu meklēšanu:
FORFILES /P “C:Users” /M *.ini /S /C “Cmd /C ReplaceText @path Server=Old Server=New /I”
Pārbaudiet visus CFG failus pašreizējā lietotāja profilā, aizstājot "p @ ssw0rd" ar "PA $$ woRd", izmantojot meklēšanu ar atslēgvārdu:
FORFILES /P “%UserProfile%” /M *.cfg /S /C “Cmd /C ReplaceText @path p@ssw0rd PA$$woRd”
Kā jūs varat redzēt zemāk, skripts ir ļoti vienkāršs un to var vienkārši mainīt, lai pielāgotos iespējamām īpašām situācijām. Tāpat jūs varat izveidot tādas skripta kopijas, kas apgrūtina konkrētas vērtības, lai jūs varētu izpildīt komandu ar dubultklikšķi un / vai ļaujat to viegli izplatīt citiem.
Scenārijs
'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
papildu piezīmes
Pēc noklusējuma Windows izmanto WScript, lai izpildītu VBScript (VBS) failus. Vienīgā problēma, ko tas var izraisīt, ir visas kļūdas un / vai ziņojumi no skripta parādīsies kā uznirstošās kastes. Komandrindas rīka labad šie ziņojumi ir redzami konsolē. Pastāv vairāki veidi, kā to izdarīt.
Mainiet noklusēto VBScript failu apstrādātāju uz CScript, palaižot šo komandu no komandu uzvednes (ar administratora tiesībām):
CScript //H:CScript
Palaidiet ReplaceText skriptu, skaidri izmantojot komandu CScript:
CScript “C:PathToReplaceText.vbs” //B FileName OldText NewText [/I]
Kā īpašs gadījums, ReplaceText izpildīšana no partijas skripta parasti nozīmē CScript kā izmantoto dzinēju neatkarīgi no noklusējuma apstrādes. Jūs noteikti vēlaties to izmēģināt, lai gan pirms šīs funkcijas izmantošanas.
Lejupielādējiet ReplaceText skriptu no SysadminGeek.com