2017-02-24 10 views
5

Jak rekurencyjnie wyświetlać katalogi w programie Powershell?Rekursywnie wyświetlaj katalogi w programie Power Shell

Próbowałem dir /S ale bez powodzenia:

PS C:\Users\snowcrash> dir /S 
dir : Cannot find path 'C:\S' because it does not exist. 
At line:1 char:1 
+ dir /S 
+ ~~~~~~ 
    + CategoryInfo   : ObjectNotFound: (C:\S:String) [Get-ChildItem], ItemNotFoundException 
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand 
+0

dostać-ChildItem - rekursywny -katalog, wierzę, że może nie działać z ps2 – 4c74356b41

+1

Krótkimi odpowiednikami 'dir/s' są' gci -r', 'ls -r',' dir -r' – wOxxOm

+0

@wOxxOm tak, to jest to – Snowcrash

Odpowiedz

10

PowerShell, dir jest aliasem dla Get-ChildItem cmdlet.

Użyj go z parametrem -Recurse do listy elementów potomnych rekurencyjnie:

Get-ChildItem -Recurse 

Jeśli chcesz tylko katalogi, a nie pliki, należy użyć przełącznika -Directory:

Get-ChildItem -Recurse -Directory 

Przełącznik -Directory jest wprowadzany dla dostawcy systemu plików w wersji 3.0.

Dla PowerShell 2.0, filtr na posesji PSIsContainer:

Get-ChildItem -Recurse |Where-Object {$_.PSIsContainer} 

(PowerShell aliasy wsparcia rozdzielczości parametrów, więc we wszystkich powyższych przykładach, Get-ChildItem można zastąpić dir)