โฮมเพจ » ทำอย่างไร » แทนที่ข้อความในไฟล์ข้อความธรรมดาจากบรรทัดคำสั่ง

    แทนที่ข้อความในไฟล์ข้อความธรรมดาจากบรรทัดคำสั่ง

    ฟังก์ชั่นที่มีประโยชน์มากซึ่งหายไปจากไลบรารี่ 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