如何使用PowerShell获取文件夹中所有文件夹名称的.txt文件,而不是子文件夹中的文件/子文件夹?

时间:2017-10-21 05:49:56

标签: list powershell directory names

目前我正在使用,SHIFT +右键单击>打开powershell窗口>然后粘贴

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中的子文件夹/文件。

2 个答案:

答案 0 :(得分:0)

如果您只想列出需要告诉它的目录。

Dir -R | ? { $_.PSIsContainer }

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

在最新的PowerShell版本中,您可以直接执行此操作。

Dir -Dir

Dir = Get-ChildItem
-R = - 收据
? = Where-Object
-Dir = -Directory

答案 1 :(得分:0)

如果您只想要指定目录中的目录,则不想递归。那将遍历整个目录层次结构;只需使用-Directory开关将输出过滤为仅包含目录。

然后,您可以从DirectoryInfo对象中提取Name属性。

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

并根据需要输出。更简洁:

(dir C:\Windows -Directory).Name