我使用下面的管道讀取文件並替換它中的一行並將其保存到另一個文件,但發現目標文件中的字符串未被替換,它是仍然是舊的。使用PowerShell的ForEach對象來匹配和替換字符串與正則表達式
原線是:名稱1a2b3c4d
新行應爲:名稱6a5e4r3h
(Get-Content "test1.xml") | ForEach-Object {$_ -replace '^name-.*$', "name-6a5e4r3h"} | Set-Content "test2.xml"
遺漏呢?
您的代碼在PS2.0和PS3.0上完美工作 – 2013-03-08 09:25:21
您是否嘗試過使用XML解析?不知道這是否適用,但如果您知道XML的哪些元素需要替換字符串,那可能是「更乾淨」 – Poorkenny 2013-03-08 10:15:55