仅获取目录名称

时间:2015-11-18 18:07:23

标签: powershell command-line

我有一个说有500个子目录的Directoy X.我需要的是快速获取我的目录以及我的X目录中这500个子目录的名称(因此,没有Mode,没有LastWriteTime或其他任何东西,只是名称)并快速管道它到文件。

所以,例如,我有这个:

-X
 |+Dir1
 |+Dir2
 |+Dir3
 |
 ...
 |+Dir500

我希望通过txt文件传送到这个

X/Dir1
X/Dir2
X/Dir3
...
X/Dir500

如何使用PowerShell或CommandLine执行此操作? 我使用的是Windows 7和PowerShell 4.0 谢谢,

2 个答案:

答案 0 :(得分:3)

Get-ChildItem将在命令行中执行与dir相同的操作:它会获取目录中的任何内容。您只查找目录。 PS v3及更高版本使用-directory标志内置此功能。在较旧的PowerShell版本中,您可以将Get-ChildItem传送到Where{$_.PSIsContainer以获取目录,然后将其传送到select Name以获取目录的名称,而不是它们的完整路径(例如& #34; Dir1" vs." X:\ Dir1")。如果您想要完整路径,请使用select FullName。假设您希望将其作为CSV格式,请将Export-Csv管道显示为您正在创建的CSV名称,例如DirectoriesInX.csv,如果您不想要类型信息,添加-NoTypeInformation的标记。

PowerShell v3及更高版本:

Get-ChildItem "X:\" -directory | Select FullName | Export-Csv "DirectoriesInX.csv" -NoTypeInformation

PowerShell v2及以下版本:

Get-ChildItem "X:\" | Where{$_.PSIsContainer} | Select FullName | Export-Csv "DirectoriesInX.csv" -NoTypeInformation

答案 1 :(得分:1)

我根本不会使用-Recurse

此外,OP希望将输出管道传输到文件:

(Get-ChildItem "X" -Directory).FullName | Out-File c:\myList.txt

-Directory开关仅适用于PS3。

-Recurse开关在树中尽可能深,并列出所有文件夹

相关问题