如何通过使用PowerShell拆分uncpath的父path?

这是我得到的UNCpath。 \\sharespace\test1\10.0.1212.1

我可以得到它的父path\\sharespace\test1\

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

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

如果你没有权限访问这个共享,那么你可以用不同的方式去操纵这个string。 这是一:

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

有一个这样的cmdlet:

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

它不包括尾部的'\',但是如果你使用Join-Path,PowerShell会照顾到,如果需要的话,也可以添加它。

注意:Split-Path和Join-Path尝试parsing本地机器上的path,所以如果path有一个不是本地机器上的有效驱动器的盘符(比如'F:'),这些cmdlet将抛出一个错误。 有了像上面这样的UNCpath,你不应该有问题。

这是一个简单的方法来parsing完整的UNCpath中的父path。

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