我已将两条路径组合在一起,但是,我需要将整个路径中的双斜杠替换为一个。
$path1 = 'C:\NewFolder\'
$path2 = '\Samplefolder\files'
$final = $path1 + $path2
Run Code Online (Sandbox Code Playgroud)
结果显示为:C:\NewFolder\\Samplefolder\files,使其成为无效路径。我想将这两个斜杠替换为一个,并且需要它,以便\\路径中只要有两个斜杠,它们就只替换为一个\。
我试过做
$final = [regex]::replace($final,"\\\\","\\")
Run Code Online (Sandbox Code Playgroud)
和
$final = $final.replace('\\\\+', '\\')
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
在 PowerShell 中连接路径的惯用方法是使用Join-Path。
$path1 = 'C:\NewFolder\'
$path2 = '\Samplefolder\files'
$final = Join-Path $path1 $path2
Run Code Online (Sandbox Code Playgroud)
PowerShell 的-replace运算符使用正则表达式匹配。您必须使用反斜杠转义特殊\字符。
$path1 = 'C:\NewFolder\'
$path2 = '\Samplefolder\files'
$final = $path1 + $path2 -replace '\\\\','\'
Run Code Online (Sandbox Code Playgroud)
您可以选择 String 类Replace()方法,它执行文字字符串和字符搜索。
$path1 = 'C:\NewFolder\'
$path2 = '\Samplefolder\files'
$final = ($path1 + $path2).Replace('\\','\')
Run Code Online (Sandbox Code Playgroud)