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źć?

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


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 \


(Get-Location) .Path.TrimEnd ('\'). Split ('\'). Count
Keith Miller
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.