在我的脚本中我检查了一些文件,并希望用另一个字符串(相应共享的unc路径)替换其完整路径的一部分。
示例:
$fullpath = "D:\mydir\myfile.txt"
$path = "D:\mydir"
$share = "\\myserver\myshare"
write-host ($fullpath -replace $path, $share)
最后一行给出了一个错误,因为$ path不包含正则表达式的有效模式。
如何修改该行以使替换运算符将变量$ path的内容作为文字处理?
提前致谢, 凯文
答案 0 :(得分:26)
使用[regex]::Escape()
- 非常方便的方法
$fullpath = "D:\mydir\myfile.txt"
$path = "D:\mydir"
$share = "\\myserver\myshare"
write-host ($fullpath -replace [regex]::Escape($path), $share)
您也可以使用我的过滤器rebase
来执行此操作,请查看Powershell: subtract $pwd from $file.Fullname
答案 1 :(得分:11)
方法$variable -replace $strFind,$strReplace
了解正则表达式模式
但方法$variable.Replace($strFind,$strReplace)
没有。试试吧。
PS > $fullpath.replace($path,$share)
\ MYSERVER \ myshare的\ myfile.txt的