從this發佈,我設法用Windows XP上的Powershell替換目錄的子文件中的字符串。Powershell:無效的正則表達式
foreach ($f in gci -r -include "*.bat")
{ (gc $f.fullname) |
foreach { $_ -replace "D:","C:\path" } |
sc $f.fullname
}
不幸的是,一些特殊情況下需要「C:\\」而不是「C:\」。
我試圖使用下面的命令來解決這個問題(替換:用 「C \路徑\\」, 「C:\\路徑\\」),但它未能:
foreach ($f in gci -r -include "*.bat")
{ (gc $f.fullname) |
foreach { $_ -replace "C\path\\","C:\\path\\" } |
sc $f.fullname
}
誤差是:
Invalid regular expression pattern: C:\path\\
我在努力消除這個問題的嘗試幾種變體,但所有產生相同的誤差(替換上面的行#3):
foreach { $_ -replace "C:\path\\\\","C:\\path\\" } |
foreach { $_ -replace 'C:\path\\',"C:\\path\\" } |
foreach { $_ -replace "`C:\path\\","C:\\path\\" } |
foreach { $_ -replace 'C:\path\\\\',"C:\\path\\" } |
有什麼想法?
是否缺少了 ':' 由於某種原因,在你的代碼? – 2012-07-06 21:22:17
@Christian:不,對不起,只是一個錯字。 – 2012-07-06 21:25:48