如何在PowerShell -replace字符串操作中处理反斜杠字符?

时间:2016-05-03 10:29:22

标签: powershell replace backslash

我正在使用-replace来更改从源到目标的路径。但是我不知道如何处理\字符。例如:

$source = "\\somedir"
$dest = "\\anotherdir"

$test = "\\somedir\somefile"

$destfile = $test -replace $source, $dest

执行此操作后,$ destfile将设置为

"\\\anotherdir\somefile"

这样做的正确方法是什么,以避免结果中出现三重反斜杠?

1 个答案:

答案 0 :(得分:16)

尝试以下方法:

$source = "\\\\somedir"

您在替换时只匹配1个反斜杠,这在您的路径开头为您提供了三个\\\

反斜杠是一个regex转义字符,因此\\将被视为仅匹配一个\而不是两个\\。由于第一个反斜杠是转义字符而不习惯匹配。

另一种处理反斜杠的方法是使用regex转义函数。

$source = [regex]::escape('\\somedir')