我有一个说有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 谢谢,
答案 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
的标记。
Get-ChildItem "X:\" -directory | Select FullName | Export-Csv "DirectoriesInX.csv" -NoTypeInformation
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
开关在树中尽可能深,并列出所有文件夹