仅获取目录名称

pix*_*xel 1 powershell command-line

我有一个包含 500 个子目录的目录 X。我需要的是一个快速的方法来只得到只有我的目录和这些子目录500在我的X目录的名称(所以,无模式,无LastWriteTime或其他任何东西,只是名字)和管道到一个文件中。

所以,例如,我有这个:

-X
 |+Dir1
 |+Dir2
 |+Dir3
 |
 ...
 |+Dir500
Run Code Online (Sandbox Code Playgroud)

我想通过管道传输到 txt 文件的是这个

X/Dir1
X/Dir2
X/Dir3
...
X/Dir500
Run Code Online (Sandbox Code Playgroud)

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

Nat*_*ate 5

Get-ChildItem将做与dir命令行相同的事情:它获取您目录中的任何内容。您只在寻找目录。PS v3 及更高版本通过使用-directory. 在较旧的 PowerShell 版本中,您可以将您的管道Get-ChildItem传递给 aWhere{$_.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
Run Code Online (Sandbox Code Playgroud)

PowerShell v2 及以下:

Get-ChildItem "X:\" | Where{$_.PSIsContainer} | Select FullName | Export-Csv "DirectoriesInX.csv" -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)