首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将UNC路径转换为NTFS本地路径

将UNC路径转换为NTFS本地路径
EN

Stack Overflow用户
提问于 2018-02-21 17:07:59
回答 3查看 1.2K关注 0票数 0

我在powershell中将UNC位置转换为本地驱动器时遇到问题。因此,我的代码基本上将用户作为读取主机的输入作为数据库备份位置的UNC路径。位置可能是这样的\\ServerName\m$\SQLBackups\123

然后,它会提示从何处复制备份。同样,这也是一个UNC路径,比如\\ServerName\g$\SQLRestores\444\Filename.bak

我需要将这两个路径转换为它们的本地路径,以便它读取m:\sqldbackups\123g:\sqlrestores\444\Filename.bak

下面是我的代码,我已经添加了我想要的最终输出的注释。

代码语言:javascript
复制
$BackupPath = "\\ServerName\m$\SQLBackups\123"
$Dumps = Split-Path -Path $BackupPath -Leaf
$Drive = Split-Path -Path $BackupPath -Parent
$LastTwo = $Drive.Substring($Drive.get_Length()-2)


$FullNTFS = $LastTwo + "\" + $Dumps
$FullNTFS = $FullNTFS.Replace("$",":")
$FullNTFS 
#This should be M:\SQLBACKUPS\123

$RestorePath = "\\ServerName\g$\SQLRestores\444\Filename.bak"
$Dumps = Split-Path -Path $RestorePath -Leaf
$Drive = Split-Path -Path $RestorePath -Parent
$LastTwo = $Drive.Substring($Drive.get_Length()-2)


$FullNTFS = $LastTwo + "\" + $Dumps
$FullNTFS = $FullNTFS.Replace("$",":")
$FullNTFS 
#This should be read as g:\sqlrestores\444\FileName.bak
EN

回答 3

Stack Overflow用户

发布于 2018-02-21 17:17:31

除非路径是指向共享根目录下的目录或文件,否则Split-Path将不起作用。

请改用Path.GetPathRoot()获取主机和共享名:

代码语言:javascript
复制
$Drive = [System.IO.Path]::GetPathRoot($BackupPath)
$Dumps = $BackupPath.Substring($Drive.Length)
$Drive = $Drive.Substring($Drive.LastIndexOf('\') + 1).Replace('$',':')
$NTFSPath = "$Drive$Dumps"
票数 7
EN

Stack Overflow用户

发布于 2018-02-21 21:14:05

我认为上面的答案是正确的,但有时简单的模式匹配可能就足够了:

代码语言:javascript
复制
"\\server2.net\g$\foo\bar\baz", "\\server1.com\c$\baz\bar\foo" |
Select-String -Pattern "([A-z])\`$(.*)" |
%{ "$($_.Matches.Groups[1].value):$($_.Matches.Groups[2].value)" }
票数 0
EN

Stack Overflow用户

发布于 2019-04-11 07:52:06

代码语言:javascript
复制
# -replace operator with regex does the trick
PS C:\> '\\ServerName\m$\SQLBackups\123' -replace '(?:.+)\\([a-z])\$\\','$1:\'
m:\SQLBackups\123
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48901884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档