5

Here is a UNC path I've got.\\sharespace\test1\10.0.1212.1

Can I get its parent path\\sharespace\test1\?

  • Basic powershell questions are more likely to be tolerated and answered well on stackoverflow.com . – Mark Aug 4 '11 at 19:58
6

There are a few options. If you have access to the share then:

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

If you do not have access to the share, you can go the more unpalatable route of manipulating the string in various ways. This is one:

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

There's a cmdlet for this:

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

It doesn't include the trailing '\', but if you use Join-Path then PowerShell will take care of adding it if required anyway.

NOTE: Split-Path and Join-Path try to resolve the path on the local machine, so if the path has a drive letter (say, 'F:') that is not a valid drive on the local machine, these cmdlets will throw an error. With UNC paths like the above you shouldn't have a problem.

  • 2
    Fyi this doesn't work with UNC paths if you only have the host and ShareName Split-Path "\\HostName.domain.com\ShareName" but if you specify a folder under the share it works Split-Path "\\HostName.domain.com\ShareName\test" – Chris Magnuson Apr 27 '17 at 12:45
1

Here's a simple way to parse the parent path out of the full UNC path.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.