Kotisivu » miten » Vaihda teksti tavallisissa tekstitiedostoissa komentoriviltä

    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