我正在使用-replace来更改从源到目标的路径。但是我不知道如何处理\字符。例如:
$source = "\\somedir"
$dest = "\\anotherdir"
$test = "\\somedir\somefile"
$destfile = $test -replace $source, $dest
执行此操作后,$ destfile将设置为
"\\\anotherdir\somefile"
这样做的正确方法是什么,以避免结果中出现三重反斜杠?
答案 0 :(得分:16)
尝试以下方法:
$source = "\\\\somedir"
您在替换时只匹配1个反斜杠,这在您的路径开头为您提供了三个\\\
。
反斜杠是一个regex
转义字符,因此\\
将被视为仅匹配一个\
而不是两个\\
。由于第一个反斜杠是转义字符而不习惯匹配。
另一种处理反斜杠的方法是使用regex
转义函数。
$source = [regex]::escape('\\somedir')