PowerShell: วิธีแทนที่หลายสตริงในไฟล์
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อแทนที่สตริงหลายรายการในไฟล์โดยใช้ PowerShell:
(Get-Content c:\doc\data.txt).Replace('old1', 'new1').Replace('old2', 'new2') | Set-Content c:\doc\data.txt
ตัวอย่างนี้ทำการแทนที่ต่อไปนี้ในไฟล์ชื่อ data.txt:
- old1 ถูกแทนที่ด้วย new1
- old2 ถูกแทนที่ด้วย new2
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: วิธีแทนที่สตริงหลายรายการในไฟล์ใน PowerShell
สมมติว่าเรามีไฟล์ข้อความต่อไปนี้ชื่อ basketball_info.txt ซึ่งมีข้อมูลเกี่ยวกับความชอบของใครบางคนสำหรับทีมบาสเก็ตบอลต่างๆ:
สมมติว่าไฟล์นี้ถูกบันทึกในตำแหน่งต่อไปนี้:
c:\users\bobbi\documents\basketball_info.txtสมมติว่าเราต้องการทำการแทนที่ต่อไปนี้ในไฟล์:
- แทนที่ Lakers แต่ละรายการด้วย Mavs
- แทนที่ Warriors แต่ละครั้งด้วย Spurs
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อดำเนินการดังกล่าว:
(Get-Content c:\users\bobbi\documents\basketball_info.txt).Replace('Lakers', 'Mavs').Replace('Warriors', 'Spurs') | Set-Content c:\users\bobbi\documents\basketball_info.txt
ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:
จากนั้นเราสามารถนำทางไปยังไฟล์บนคอมพิวเตอร์ของเราได้อีกครั้งและดูไฟล์:
เราจะเห็นว่ามีการแทนที่ต่อไปนี้ในไฟล์:
- แต่ละรายการของ Lakers จะถูกแทนที่ด้วย Mavs
- การปรากฏตัวของ Warriors แต่ละครั้งถูกแทนที่ด้วย สเปอร์ส
หมายเหตุ: ในตัวอย่างนี้ เราได้แทนที่สตริงเก่าสองสตริงด้วยสตริงใหม่สองสตริง แต่คุณสามารถใช้ไวยากรณ์ที่คล้ายกันเพื่อเชื่อมโยงเมธอด Replace() เข้าด้วยกันได้มากเท่าที่คุณต้องการ แทนที่สตริงเพิ่มเติม


