use*_*562 11 powershell replace backslash
我使用-replace来改变从源到目的地的路径.但是我不知道如何处理\字符.例如:
$source = "\\somedir"
$dest = "\\anotherdir"
$test = "\\somedir\somefile"
$destfile = $test -replace $source, $dest
Run Code Online (Sandbox Code Playgroud)
执行此操作后,$ destfile将设置为
"\\\anotherdir\somefile"
Run Code Online (Sandbox Code Playgroud)
为避免结果中的三重反斜杠,这样做的正确方法是什么?
Ric*_*ard 17
请尝试以下方法:
$source = "\\\\somedir"
Run Code Online (Sandbox Code Playgroud)
你只需要在替换时匹配1个反斜杠,这样就可以在\\\路径的开头给出三个反斜杠.
反斜杠是一个regex转义字符,因此\\将被视为,只匹配一个\而不是两个\\.由于第一个反斜杠是转义字符而不习惯匹配.
另一种处理反斜杠的方法是使用regexescape函数.
$source = [regex]::escape('\\somedir')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29503 次 |
| 最近记录: |