Вот путь UNC, который у меня есть.\\sharespace\test1\10.0.1212.1
Могу ли я получить его родительский путь\\sharespace\test1\
?
Есть несколько вариантов. Если у вас есть доступ к общему ресурсу, то:
(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)])
Для этого есть командлет:
Split-Path \\sharespace\test1\10.0.1212.1
\\sharespace\test1
Он не включает завершающий '\', но если вы используете Join-Path, PowerShell позаботится о том, чтобы добавить его, если это необходимо.
ПРИМЕЧАНИЕ: Split-Path и Join-Path пытаются разрешить путь на локальном компьютере, поэтому, если путь имеет букву диска (скажем, 'F:'), которая не является допустимым диском на локальном компьютере, эти командлеты будут вызывать ошибка. С такими путями UNC у вас не должно возникнуть проблем.
Вот простой способ выделить родительский путь из полного UNC-пути.
$fullPath = "\\sharespace\test1\10.0.1212.1"
$parentPath = "\\" + [string]::join("\",$fullPath.Split("\")[2..3])