2017-10-21 377 views
1

目前我使用,SHIFT +鼠標右鍵點擊>此處打開PowerShell窗口>然後在如何使用PowerShell獲取文件夾內所有文件夾名稱的.txt文件,而不是子文件夾內的文件/子文件夾?

dir -recurse | select -ExpandProperty Name | foreach {$_.split('.',2)[0]} | out-file file.txt 

唯一的問題是粘貼我選擇一個目錄Shift +右鍵點擊,但我得到的所有文件名/第二個文件夾內的文件夾,它真的毀了我要去的組織。

因此,例如我有一個名爲「RootFolder」的文件夾。 RootFolder內部是10個其他文件夾,稱爲「Folder1」到「Folder10」。 我只想將名稱Folder1 - Folder10放在shell命令創建的.txt文件夾中。我不想在.txt文件中的文件夾Folder1-10內的子文件夾/文件。

回答

0

如果你只想列出你需要告訴它的目錄。

Dir -R | ? { $_.PSIsContainer } 

Dir -R | ? { $_ -is [System.IO.DirectoryInfo] } 

在最近的PowerShell的版本,你可以直接做到這一點。

Dir -Dir 

Dir = GET-ChildItem
-R = -Recurse
? =位置對象
-Dir = -Directory

0

如果你只是想指定的目錄內的目錄,你不想進行遞歸。這將遍歷整個目錄層次結構;只需使用-Directory開關將輸出過濾爲僅包含目錄。

然後,您可以從DirectoryInfo對象中提取Name屬性。

PS C:\> dir C:\Windows -Directory |% { $_.Name } 
addins 
appcompat 
apppatch 
AppReadiness 
[...] 

並根據需要輸出。更簡潔:

(dir C:\Windows -Directory).Name 
相關問題