Como dividir o caminho pai de um caminho unc usando o powershell?

5

Aqui está um caminho UNC que eu tenho. \sharespace\test1.0.1212.1

Posso obter seu caminho pai \sharespace\test1\ ?

    
por pansal 04.08.2011 / 20:17

3 respostas

6

Existem algumas opções. Se você tiver acesso ao compartilhamento, então:

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

Se você não tem acesso ao compartilhamento, você pode seguir a rota mais intragável de manipular a string de várias maneiras. Este é um:

$path = '\sharespace\test1.0.1212.1'
[string]::Join('\', $path.Split('\')[0..$($path.Split('\').Length-2)])
    
por 04.08.2011 / 20:24
2

Há um cmdlet para isso:

Split-Path \sharespace\test1.0.1212.1
\sharespace\test1

Ele não inclui o trailing '\', mas se você usar Join-Path, o PowerShell se encarregará de adicioná-lo, se necessário, de qualquer maneira.

NOTA: Split-Path e Join-Path tentam resolver o caminho na máquina local, portanto, se o caminho tiver uma letra de unidade (digamos, 'F:') que não seja uma unidade válida na máquina local, cmdlets lançará um erro. Com caminhos UNC como o acima, você não deve ter problemas.

    
por 06.08.2011 / 10:48
1

Aqui está uma maneira simples de analisar o caminho pai fora do caminho UNC completo.

$fullPath = "\sharespace\test1.0.1212.1"
$parentPath = "\" + [string]::join("\",$fullPath.Split("\")[2..3])
    
por 04.08.2011 / 20:33

Tags