【问题标题】:Get Directories Names Only仅获取目录名称
【发布时间】:2015-11-18 18:07:23
【问题描述】:

我有一个包含 500 个子目录的目录 X。我需要的是一种快速的方法来获取 only 我的目录和我的 X 目录中这 500 个子目录的名称(所以,没有模式,没有 LastWriteTime 或其他任何东西,只是名称)并管道它到一个文件。

所以,例如,我有这个:

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

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

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

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

【问题讨论】:

  • 嗨,到目前为止你写了什么?答案涉及您在 PowerShell 中学习的第一个命令:Get-ChildItem

标签: powershell command-line


【解决方案1】:

Get-ChildItem 将在命令行中执行与dir 相同的操作:它获取您目录中的任何内容。您只在寻找目录。 PS v3 及更高版本通过使用-directory 的标志来内置此功能。在较旧的 PowerShell 版本中,您可以通过管道将 Get-ChildItem 传递到 Where{$_.PSIsContainer 以获取目录,然后将其传递到 select Name 以获取目录的名称,而不是它们的完整路径(例如“Dir1”与“X :\目录1")。如果您想要完整路径,请使用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

【讨论】:

    【解决方案2】:

    根据要求,我不会使用-Recurse

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

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

    -Directory 开关仅适用于 PS3。

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

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 2017-03-31
      • 2012-01-02
      • 2011-01-11
      相关资源
      最近更新 更多