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:Users” /M *.ini /S /C “Cmd /C ReplaceText @path Server=Old Server=New /I”
Pindai semua file CFG di profil pengguna saat ini menggantikan "p @ ssw0rd" dengan "PA $$ woRd" menggunakan penelusuran peka huruf besar kecil:
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
'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
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