如何使用 powershell 拆分 unc 路径的父路径?

如何使用 powershell 拆分 unc 路径的父路径?

这是我得到的 UNC 路径。\\sharespace\test1\10.0.1212.1

我可以获得它的父路径\\sharespace\test1\吗?

答案1

有几个选项。如果您有权访问共享,则:

(Get-Item '\\sharespace\test1\10.0.1212.1').Parent.Fullname

如果您无权访问共享,则可以使用更令人不快的方式以各种方式操纵字符串。这是其中一种:

$path = '\\sharespace\test1\10.0.1212.1'
[string]::Join('\', $path.Split('\')[0..$($path.Split('\').Length-2)])

答案2

有一个用于此的 cmdlet:

Split-Path \\sharespace\test1\10.0.1212.1
\\sharespace\test1

它不包括尾随的“\”,但如果您使用 Join-Path,则 PowerShell 会在需要时负责添加它。

注意:Split-Path 和 Join-Path 尝试解析本地计算机上的路径,因此如果路径上的驱动器号(例如“F:”)不是本地计算机上的有效驱动器,则这些 cmdlet 将引发错误。使用上述 UNC 路径,您不应该遇到问题。

答案3

这是一个从完整 UNC 路径中解析出父路径的简单方法。

$fullPath = "\\sharespace\test1\10.0.1212.1"
$parentPath = "\\" + [string]::join("\",$fullPath.Split("\")[2..3])

相关内容