Laman » bagaimana untuk » Gantikan Teks dalam Teks Teks Biasa dari Barisan Perintah

    Gantikan Teks dalam Teks Teks Biasa dari Barisan Perintah

    Fungsi yang sangat berguna yang hilang dari alat Windows command line adalah kemampuan untuk menggantikan teks dalam file teks biasa. Fungsi seperti ini boleh digunakan untuk pelbagai tugas praktikal yang dilakukan oleh banyak sistem admin, seperti:

    • Kemas kini konfigurasi / fail INI untuk menggantikan laluan UNC.
    • Maklumat pengguna kemas kini massa yang disimpan dalam fail INI pada pelayan Terminal / Citrix.
    • Gunakan bersama dengan skrip untuk menggunakan data 'templated' dan kemudian gunakan nilai pada fail yang disalin.

    Penyelesaian kami ialah VBScript yang mengawal fungsi Ganti Visual Basic. Dengan meletakkan skrip ini ke dalam lokasi dalam pembolehubah PATH Windows anda, anda kini mempunyai fungsi ini yang boleh didapati di pelupusan anda.

    Kegunaan

    Sekali pada sistem anda, anda boleh memanggil skrip dengan hanya menggunakan perintah ReplaceText. Beberapa contoh akan menggambarkan cara anda boleh menggunakan ini:

    Gantikan perkataan "null" dengan "n / a" dalam fail C: DataValues.csv:

    ReplaceText "C: DataValues.csv" null n / a

    Imbas semua fail INI dalam folder C: Pengguna (+ sub direktori) yang menggantikan semua kejadian "Server = Lama" dengan "Server = Baru" menggunakan carian tidak sensitif huruf:

    FORFILES / P "C: Users" / M * .ini / S / C "Cmd / C ReplaceText @path Server = Old Server = New / I"

    Imbas semua fail CFG dalam profil pengguna semasa yang menggantikan "p @ ssw0rd" dengan "PA $$ woRd" menggunakan carian sensitif huruf:

    FORFILES / P "% UserProfile%" / M * .cfg / S / C "Cmd / C ReplaceText @ path p @ ssw0rd PA $$ woRd"

    Seperti yang anda dapat lihat di bawah, skrip sangat mudah dan boleh diubah suai dengan mudah untuk menampung apa-apa keadaan khas yang mungkin anda miliki. Secara bergantian, anda mungkin ingin membuat salinan skrip yang nilai-nilai khusus hardcode supaya anda dapat menjalankan perintah dengan klik dua kali dan / atau membolehkan anda dengan mudah mengedarkannya kepada orang lain.

    Skrip

    'Gantikan Teks
    'Ditulis oleh: Jason Faulkner
    'SysadminGeek.com

    'Skrip ini sepatutnya diletakkan di dalam folder yang dinyatakan dalam pembolehubah PATH sistem anda.

    'Penggunaan (WScript):
    'ReplaceText FileName OldText NewText [/ I]

    '/ I (pilihan) - Pemadanan teks tidak sensitif huruf

    Tetapkan oArgs = WScript.Arguments

    intCaseSensitive = 0
    Untuk i = 3 hingga oArgs.Count-1
    Jika UCase (oArgs (i)) = "/ I" Kemudian intCaseSensitive = 1
    Seterusnya

    Tetapkan oFSO = CreateObject ("Scripting.FileSystemObject")

    Jika Tidak oFSO.FileExists (oArgs (0)) Kemudian
    WScript.Echo "Fail dinasihat tidak wujud."
    Lain
    Tetapkan oFile = oFSO.OpenTextFile (oArgs (0), 1)
    strText = oFile.ReadAll
    oFile.Close

    strText = Ganti (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive)

    Tetapkan oFile = oFSO.OpenTextFile (oArgs (0), 2)
    oFile.WriteLine strText
    oFile.Close
    Akhir Jika

    Nota tambahan

    Secara lalai, Windows menggunakan WScript untuk melaksanakan fail VBScript (VBS). Satu-satunya masalah ini boleh menyebabkan sebarang kesilapan dan / atau mesej dari skrip akan muncul sebagai kotak pop timbul. Untuk alat arahan, lebih baik mesej-mesej ini dipaparkan di konsol. Ada beberapa cara yang boleh anda lakukan.

    Tukar pengendali lalai fail VBScript ke CScript dengan menjalankan perintah ini dari command prompt (dengan hak Administrator):

    CScript // H: CScript

    Jalankan skrip ReplaceText dengan jelas menggunakan arahan CScript:

    CScript "C: PathToReplaceText.vbs" // B FileName OldText NewText [/ I]

    Sebagai kes khas, melaksanakan ReplaceText dari skrip batch biasanya menyiratkan CScript sebagai enjin yang digunakan tanpa mengira pengendali lalai. Anda pasti ingin menguji ini walaupun sebelum bergantung pada fungsi ini.

    Muat turun ReplaceText Script dari SysadminGeek.com