我正在尝试收集长目录路径的报告,以提供给拥有它们的每个用户,以便他们可以使用它并使该文件夹路径变短。
如何将\\ server \ Share $替换为X :?我尝试了以下内容,但没有任何变化。仅当我只执行一个字符或一个字符串“\\服务器”,而不执行组合“\\ server \ Share $”时,我才能得到结果。有人可以告诉我我在做什么错。
$results= "\\\server\Share$\super\long\directory\path\"
$usershare="\\\server\Share$"
$Results | ForEach-Object { $_.FullName = $_.FullName -replace "$usershare", 'X:' }
我需要的输出是用户将在他们的系统中看到的输出。
X:\super\long\directory\path\
最佳答案
由于$userShare
变量包含具有special meaning in Regular Expressions的字符(并且-replace
使用正则表达式),因此需要[Regex]::Escape()
该字符串。
首先要注意的是,您使用三个反斜杠开始UNC路径,其中您应该只使用两个。
接下来是您的$results
变量仅声明为字符串,并且可能应该是Get-ChildItem
命令的结果。
我想您想做的是这样的:
$uncPath = "\\server\Share$\super\long\directory\path\" #"# the UNC folder path
$usershare = "\\server\Share$"
$results = Get-ChildItem -Path $uncPath | ForEach-Object {
$_.FullName -replace ([regex]::Escape($usershare)), 'X:'
}
希望能有所帮助
关于powershell - 如何使用Powershell将\\server\Share $替换为D:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56702021/