从这篇文章中,我设法在 Windows XP 上用 Powershell 替换了目录子文件中的字符串。
foreach ($f in gci -r -include "*.bat")
{ (gc $f.fullname) |
foreach { $_ -replace "D:","C:\path" } |
sc $f.fullname
}
不幸的是,一些例外情况需要“C:\\”而不是“C:\”。
我尝试使用以下命令来解决此问题(将“C:\path\\”替换为“C:\\path\\”),但它失败了:
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\\" } |
有什么想法吗?