Vaihda teksti tavallisissa tekstitiedostoissa komentoriviltä
Erittäin hyödyllinen toiminto, joka puuttuu komentorivityökalujen Windows-kirjastosta, on kyky korvata teksti tavallisissa tekstitiedostoissa. Tällaista toimintoa voidaan käyttää moniin käytännön tehtäviin, joita monet järjestelmänvalvojat suorittavat, kuten:
- Päivitä konfiguraatio / INI-tiedostot korvaamaan UNC-polut.
- Massatietojen käyttäjätietoja, jotka on tallennettu INI-tiedostoihin päätelaitteen / Citrix-palvelimen kautta.
- Käytä yhdessä komentosarjojen kanssa "mallipohjaisten" tietojen käyttämistä ja sitten arvojen kopiointia kopioituihin tiedostoihin.
Ratkaisumme on VBScript, joka on yhteydessä Visual Basic Replace -toimintoon. Asettamalla tämän komentosarjan Windows PATH -muuttujaan, tämä toiminto on nyt käytettävissäsi.
käyttötarkoitukset
Kun olet järjestelmässäsi, voit soittaa skriptiin yksinkertaisesti käyttämällä ReplaceText-komentoa. Muutamia esimerkkejä havainnollistaa tapoja, joilla voit käyttää tätä:
Korvaa sana "null" ilmaisulla "n / a" C: DataValues.csv-tiedostossa:
ReplaceText “C: DataValues.csv” null n / a
Skannaa kaikki INI-tiedostot C: Users (+ sub-hakemistot) -kansiossa korvaamalla kaikki ”Server = Old” -tapahtumat, joissa on ”Server = New”, käyttämällä asiaa epäherkkiä hakuja:
FORFILES / P “C: Käyttäjät” / M * .ini / S / C “Cmd / C ReplaceText @path Server = vanha palvelin = uusi / I”
Skannaa kaikki nykyisen käyttäjän profiilissa olevat CFG-tiedostot korvaamalla ”p @ ssw0rd” sanalla ”PA $$ woRd”, mikäli kyseessä on herkkä haku:
FORFILES / P “% UserProfile%” / M * .cfg / S / C ”Cmd / C ReplaceText @path p @ ssw0rd PA $$ woRd”
Kuten alla näet, käsikirjoitus on hyvin yksinkertainen ja sitä voidaan helposti muokata mahdollisten erityistilanteiden huomioon ottamiseksi. Vaihtoehtoisesti voit luoda kopioita skripteistä, jotka koodittavat tiettyjä arvoja, jotta voit suorittaa komennon kaksoisnapsauttamalla ja / tai voit jakaa sen helposti muille.
Käsikirjoitus
'Korvaa teksti
"Kirjoittanut: Jason Faulkner
'SysadminGeek.com
'Tämä skripti tulisi sijoittaa kansioon, joka on määritetty järjestelmän PATH-muuttujassa.
"Käyttö (WScript):
'ReplaceText FileName OldText NewText [/ I]
'/ I (valinnainen) - Tekstin yhteensovittaminen ei ole herkkä
Aseta oArgs = WScript.Arguments
intCaseSensitive = 0
I = 3: oArgs.Count-1
Jos UCase (oArgs (i)) = "/ I" Sitten intCaseSensitive = 1
Seuraava
Aseta oFSO = CreateObject (Scripting.FileSystemObject)
Jos ei ole oFSO.FileExists (oArgs (0))
WScript.Echo "Määritettyä tiedostoa ei ole."
muu
Aseta oFile = oFSO.OpenTextFile (oArgs (0), 1)
strText = oFile.ReadAll
oFile.Close
strText = Korvaa (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive)
Aseta oFile = oFSO.OpenTextFile (oArgs (0), 2)
oFile.WriteLine strText
oFile.Close
Loppu Jos
Lisämerkinnät
Oletusarvoisesti Windows käyttää WScript-tiedostoja VBScript (VBS) -tiedostojen suorittamiseen. Ainoa ongelma, jonka tämä voi aiheuttaa, on virheitä ja / tai viestejä, jotka skripti näkyvät ponnahdusikkunana. Komentorivityökalussa on parasta, että nämä viestit näkyvät konsolissa. On olemassa pari tapaa, jolla voit tehdä tämän.
Vaihda VBScript-tiedostojen oletuskäsittelijä CScriptiin suorittamalla tämä komento komentoriviltä (järjestelmänvalvojan oikeudet):
CScript // H: CScript
Suorita ReplaceText-komentosarja nimenomaan CSScript-komennolla:
CScript C: PathToReplaceText.vbs // B Tiedostonimi OldText NewText [/ I]
Erikoistapauksessa ReplaceTextin suorittaminen eräskriptistä merkitsee tyypillisesti, että CScript on käytetty moottori oletuskäsittelijästä riippumatta. Haluat varmasti testata tämän kuitenkin ennen kuin käytät tätä toimintoa.
Lataa ReplaceText Script SysadminGeek.comista