这是我得到的 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])