แทนที่ข้อความในไฟล์ข้อความธรรมดาจากบรรทัดคำสั่ง
ฟังก์ชั่นที่มีประโยชน์มากซึ่งหายไปจากไลบรารี่ Windows ของเครื่องมือบรรทัดคำสั่งคือความสามารถในการแทนที่ข้อความในไฟล์ข้อความธรรมดา ฟังก์ชั่นเช่นนี้สามารถใช้กับงานที่หลากหลายซึ่งผู้ดูแลระบบใช้เช่น:
- อัพเดตไฟล์คอนฟิกูเรชัน / INI เพื่อแทนที่พา ธ UNC.
- อัปเดตข้อมูลผู้ใช้จำนวนมากที่เก็บไว้ในไฟล์ INI บนเซิร์ฟเวอร์ Terminal / Citrix.
- ใช้ร่วมกับสคริปต์เพื่อปรับใช้ข้อมูล 'templated' จากนั้นใช้ค่ากับไฟล์ที่คัดลอก.
วิธีการแก้ปัญหาของเราคือ VBScript ซึ่งเชื่อมต่อกับฟังก์ชั่นการเปลี่ยน Visual Basic โดยการวางสคริปต์นี้ไว้ในตำแหน่งในตัวแปร Windows PATH ของคุณตอนนี้คุณมีฟังก์ชั่นการทำงานนี้เมื่อคุณต้องการ.
การใช้ประโยชน์
เมื่ออยู่ในระบบของคุณคุณสามารถเรียกใช้สคริปต์ได้โดยใช้คำสั่ง ReplaceText ตัวอย่างสองสามตัวอย่างจะแสดงวิธีที่คุณสามารถใช้สิ่งนี้:
แทนที่คำว่า“ null” ด้วย“ n / a” ในไฟล์ C: DataValues.csv:
แทนที่ข้อความ“ C: DataValues.csv” null n / a
สแกนไฟล์ INI ทั้งหมดในโฟลเดอร์ C: ผู้ใช้ (+ ไดเรกทอรีย่อย) แทนที่การเกิดขึ้นทั้งหมดของ“ เซิร์ฟเวอร์ = เก่า” ด้วย“ เซิร์ฟเวอร์ = ใหม่” โดยใช้การค้นหาแบบตัวเล็กและตัวพิมพ์ใหญ่:
FORFILES / P“ C: Users” / M * .ini / S / C“ Cmd / C ReplaceText @path Server = เซิร์ฟเวอร์เก่า = ใหม่ / I”
สแกนไฟล์ CFG ทั้งหมดในโปรไฟล์ผู้ใช้ปัจจุบันแทนที่“ p @ ssw0rd” ด้วย“ PA $$ woRd” โดยใช้การค้นหาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่:
FORFILES / P“% UserProfile%” / M * .cfg / S / C“ Cmd / C ReplaceText @path p @ ssw0rd PA $$ woRd”
ดังที่คุณเห็นด้านล่างสคริปต์นั้นง่ายมากและสามารถแก้ไขได้อย่างง่ายดายเพื่อรองรับสถานการณ์พิเศษใด ๆ ที่คุณมี อีกวิธีหนึ่งคุณอาจต้องการสร้างสำเนาของสคริปต์ที่ hardcode ค่าเฉพาะเพื่อให้คุณสามารถดำเนินการคำสั่งด้วยการดับเบิลคลิกและ / หรือช่วยให้คุณสามารถกระจายไปยังผู้อื่นได้อย่างง่ายดาย.
สคริปต์
'แทนที่ข้อความ
เขียนโดย: Jason Faulkner
'SysadminGeek.com
'สคริปต์นี้ควรอยู่ในโฟลเดอร์ที่ระบุในตัวแปร PATH ของระบบของคุณ.
'การใช้งาน (WScript):
'ReplaceText FileName OldText NewText [/ I]
'/ I (เป็นทางเลือก) - การจับคู่ข้อความไม่ได้ตรงตามตัวพิมพ์ใหญ่ - เล็ก
ตั้ง oArgs = WScript.Arguments
intCaseSensitive = 0
สำหรับ i = 3 ถึง oArgs.Count-1
ถ้า UCase (oArgs (i)) = "/ I" ดังนั้น intCaseSensitive = 1
ต่อไป
ตั้งค่า oFSO = CreateObject ("Scripting.FileSystemObject")
ถ้าไม่ใช่ oFSO.FileExists (oArgs (0)) จากนั้น
WScript.Echo "ไฟล์ที่ระบุไม่มีอยู่"
อื่น
ตั้งค่า oFile = oFSO.OpenTextFile (oArgs (0), 1)
strText = oFile.ReadAll
oFile.Close
strText = แทนที่ (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive)
ตั้งค่า oFile = oFSO.OpenTextFile (oArgs (0), 2)
o ไฟล์. StriteTine
oFile.Close
สิ้นสุดถ้า
หมายเหตุเพิ่มเติม
โดยค่าเริ่มต้น Windows ใช้ WScript เพื่อเรียกใช้ไฟล์ VBScript (VBS) ปัญหาเดียวที่ทำให้เกิดข้อผิดพลาดและ / หรือข้อความจากสคริปต์จะปรากฏเป็นกล่องป๊อปอัพ สำหรับเครื่องมือบรรทัดคำสั่งจะเป็นการดีที่สุดที่จะแสดงข้อความเหล่านี้ในคอนโซล มีสองวิธีที่คุณสามารถทำได้.
เปลี่ยนตัวจัดการเริ่มต้นของไฟล์ VBScript เป็น CScript โดยการเรียกใช้คำสั่งนี้จากพรอมต์คำสั่ง (ด้วยสิทธิ์ผู้ดูแลระบบ):
CScript // H: CScript
เรียกใช้สคริปต์ ReplaceText อย่างชัดเจนโดยใช้คำสั่ง CScript:
CScript“ C: PathToReplaceText.vbs” // B ชื่อไฟล์ OldText NewText [/ I]
ในกรณีพิเศษการเรียกใช้งาน ReplaceText จากชุดสคริปต์มักจะบอกเป็นนัยว่า CScript เป็นเครื่องมือที่ใช้โดยไม่คำนึงถึงตัวจัดการเริ่มต้น แน่นอนคุณจะต้องทดสอบสิ่งนี้ก่อนที่จะอาศัยฟังก์ชั่นนี้.
ดาวน์โหลดสคริปต์แทนที่ข้อความจาก SysadminGeek.com