ค้นหาเว็บไซต์

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() เข้าด้วยกันได้มากเท่าที่คุณต้องการ แทนที่สตริงเพิ่มเติม

บทความที่เกี่ยวข้อง