If-Koubou

Ganti Teks dalam File Teks Biasa dari Baris Perintah

Ganti Teks dalam File Teks Biasa dari Baris Perintah (Bagaimana caranya)

Fungsi yang sangat berguna yang hilang dari pustaka Windows alat baris perintah adalah kemampuan untuk mengganti teks dalam file teks biasa. Fungsi seperti ini dapat digunakan untuk berbagai tugas praktis yang dilakukan oleh banyak sistem admin, seperti:

  • Perbarui file konfigurasi / INI untuk mengganti jalur UNC.
  • Massa memperbarui informasi pengguna yang disimpan dalam file INI di server Terminal / Citrix.
  • Gunakan bersama dengan skrip untuk menyebarkan data 'templated' dan kemudian menerapkan nilai ke file yang disalin.

Solusi kami adalah VBScript yang berinteraksi dengan fungsi Ganti Visual Basic. Dengan menempatkan skrip ini ke lokasi dalam variabel PATH Windows Anda, Anda sekarang memiliki fungsi ini yang tersedia untuk Anda gunakan.

Menggunakan

Setelah berada di sistem Anda, Anda dapat memanggil skrip dengan hanya menggunakan perintah ReplaceText. Beberapa contoh akan mengilustrasikan cara-cara Anda dapat menggunakan ini:

Ganti kata "null" dengan "n / a" di C: DataValues.csv file:

ReplaceText “C: DataValues.csv” null n / a

Pindai semua file INI di folder C: Pengguna (+ sub direktori) menggantikan semua kemunculan "Server = Lama" dengan "Server = Baru" menggunakan pencarian tidak peka huruf besar kecil:

FORFILES / P "C: Pengguna" / M * .ini / S / C "Cmd / C ReplaceText @path Server = Server Lama = Baru / Saya"

Pindai semua file CFG di profil pengguna saat ini menggantikan "p @ ssw0rd" dengan "PA $$ woRd" menggunakan pencarian sensitif huruf:

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

Seperti yang Anda lihat di bawah, skripnya sangat sederhana dan dapat dengan mudah dimodifikasi untuk mengakomodasi situasi khusus apa pun yang mungkin Anda miliki. Sebagai alternatif, Anda mungkin ingin membuat salinan skrip yang meng-hardcode nilai-nilai tertentu sehingga Anda dapat menjalankan perintah dengan klik-ganda dan / atau memungkinkan Anda mendistribusikannya dengan mudah kepada orang lain.

Naskah

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

'Skrip ini harus ditempatkan dalam folder yang ditentukan dalam variabel PATH sistem Anda.

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

'/ I (opsional) - Pencocokan teks tidak peka huruf besar / kecil

Setel oArgs = WScript.Arguments

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

Set oFSO = CreateObject ("Scripting.FileSystemObject")

Jika Bukan oFSO.FileExists (oArgs (0)) Kemudian
WScript.Echo "File yang ditentukan tidak ada."
Lain
Set oFile = oFSO.OpenTextFile (oArgs (0), 1)
strText = oFile.ReadAll
oFile.Tutup

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

Set oFile = oFSO.OpenTextFile (oArgs (0), 2)
oFile.WriteLine strText
oFile.Tutup
Berakhir jika

catatan tambahan

Secara default, Windows menggunakan WScript untuk mengeksekusi file VBScript (VBS). Satu-satunya masalah yang dapat menyebabkan ini adalah kesalahan dan / atau pesan dari skrip akan muncul sebagai kotak popup. Untuk alat baris perintah, sebaiknya pesan ini ditampilkan di konsol. Ada beberapa cara untuk mencapai hal ini.

Ubah penangan default file VBScript ke CScript dengan menjalankan perintah ini dari command prompt (dengan hak Administrator):

CScript // H: CScript

Jalankan skrip ReplaceText secara eksplisit menggunakan perintah CScript:

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

Sebagai kasus khusus, mengeksekusi ReplaceText dari skrip batch biasanya mengimplikasikan CScript sebagai mesin yang digunakan terlepas dari penangan default. Anda pasti ingin menguji ini meskipun sebelum mengandalkan fungsi ini.

Unduh Script ReplaceText dari SysadminGeek.com