2017-10-18 103 views
0

我試圖從特定的目錄樹中獲取每個級別的文件夾的FullName的輸出。Powershell腳本獲取目錄樹的FullName

我想得到這樣的輸出:

C:\ 
C:\dir1 
C:\dir1\dir2 
C:\dir1\dir2\dir3 

的事情是,該目錄必須是具體的...像C:\C:\dir1\dir2\dir3

之間的目錄部分就像一個路徑開始和結束路徑,任何想法?

回答

0

試試這個:

$Path = 'C:\dir1\dir2\dir3' 

$Folders = $Path -Split "\\" 
$Folders | % { $i = 0 } { $Folders[0..$i] -Join "\" -Replace ":$", ":\"; $i++ } 

結果:

C:\ 
C:\dir1 
C:\dir1\dir2 
C:\dir1\dir2\dir3 
2

對於PowerShell的V3或更高版本:

Get-ChildItem C:\dir1 -Directory -Recurse | 
    Select-Object -ExpandProperty FullName 

對於舊版本:

Get-ChildItem C:\Dir1 -Recurse | 
    Where-Object { $_.PSIsContainer } | 
    Select-Object -ExpandProperty FullName 
+0

你喜歡那樣,但是,我試圖讓路徑只有dir1和(可以說)dir10。但是有些導演是不相關的,所以只有列表中的路徑。我不知道如何只包括那些。 我嘗試了幾個事情與拆分路徑。我雖然做了一個循環,所以它重複分裂,直到它的路徑「C:\ Exaple」。但它沒有按預期工作:) –

+0

'Get-ChildItem'有一個'-Exclude'參數來排除處理中的某些項目。我建議先閱讀文檔。 –