我有一个Directoy X,其中包含500个子目录。我需要的是一种快速的方法,它仅获取我的目录和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
谢谢,
最佳答案
Get-ChildItem
与命令行中的dir
具有相同的作用:它获取目录中的内容。您只在寻找目录。 PS v3及更高版本通过使用-directory
的标记具有此内置功能。在较旧的PowerShell版本中,您可以将Get-ChildItem
用管道传输到Where{$_.PSIsContainer
以获取目录,然后将其通过管道传输到select Name
以仅获取目录名称,而不是其完整路径(例如,“Dir1”与“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
关于powershell - 仅获取目录名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33787200/