วิธีค้นหาและแทนที่สตริงในไฟล์ด้วย cmd หรือ PowerShell


13

ผมมีไฟล์ .txt ที่ฉันต้องการแทนที่สตริงด้วยaaabbb

ฉันได้ลองใช้รหัส PowerShell ต่อไปนี้แล้ว:

Get-Content c:\1.txt | ForEach-Object { $_ -replace "aaa", "bbb" } | Set-Content c:\1.txt

ฉันได้รับข้อผิดพลาดที่1.txtกำลังถูกใช้โดยกระบวนการอื่น ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


19
(get-content c:\1.txt) | foreach-object {$_ -replace "prod", "qa1"} | set-content c:\1.txt

วงเล็บที่อยู่รอบ ๆGet-Contentให้แน่ใจว่าการดำเนินการ Get เสร็จสมบูรณ์ก่อนที่การดำเนินการ Set จะเริ่มขึ้นโดยที่ทั้งสองฟังก์ชั่นจะพยายามเข้าถึงไฟล์ในเวลาเดียวกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.