2017-10-21 977 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 
相关问题