Znajdź głębokość ścieżki w PowerShell

2

W przypadku dowolnej lokalizacji uzyskanej przez polecenie Get-Locationcmdlet, jeśli mam taką ścieżkę:

C:\Top\Middle\Bottom

Powiedziałbym, że ma 3 poziomy głębokości.

Jeśli mam:

C:\

Powiedziałbym, że to poziom 0. Może to być 0 lub 1, ale logika głębi jest najważniejsza.

Czy istnieje sposób, aby to rozgryźć?

laggingreflex
źródło

Odpowiedzi:

1

Myślę, że najprostszym sposobem na zrobienie tego (zakładając, że twoje pliki nie mają \w nazwie) jest:

$file.FullName.ToString().Split('\\').Count

soandos
źródło
W moim przypadku byłoby (Get-Location).Path.ToString().Split('\\').Countdobrze? Daje zarówno2 dla, jak C:\ i dla C:\Top . Na wszystkich głębszych poziomach działa dobrze.
laggingreflex
@laggingreflex Myślę, że to prawda. Jeśli chcesz, możesz kierować literami na specjalne litery tylko wtedy, gdy chcesz (długość będzie wynosić trzy, a te zawsze będą literami kierującymi)
soandos
-1

Ten kod:

((Get-Location).Path.ToString().Split('\\') | ? {$_ -ne ""} ).Count

Zwraca 1 dla c: \

Zwraca 2 dla c: \ users \

Scholtz
źródło
(Get-Location) .Path.TrimEnd ('\'). Split ('\'). Count
Keith Miller