【问题标题】:How to get a .txt file of all folders names inside a folder but not the files/subfolders inside the child folders using powershell?如何使用powershell获取文件夹内所有文件夹名称的.txt文件,但不获取子文件夹内的文件/子文件夹?
【发布时间】:2018-04-02 07:05:33
【问题描述】:

目前我正在使用,SHIFT +右键单击>在此处打开powershell窗口>然后粘贴

dir -recurse | select -ExpandProperty Name | foreach {$_.split('.',2)[0]} | out-file file.txt

唯一的问题是我选择了一个目录来 SHIFT + 右键单击​​,但是我也得到了第二个文件夹中的所有文件/文件夹的名称,这真的破坏了我想要的组织。

例如,我有一个名为“RootFolder”的文件夹。 在 RootFolder 内部还有 10 个其他文件夹,称为“Folder1”到“Folder10”。 我只希望名称 Folder1 - Folder10 位于 shell 命令创建的 .txt 文件夹中。我不希望 .txt 文件中文件夹 Folder1-10 中的子文件夹/文件。

【问题讨论】:

    标签: list powershell directory names


    【解决方案1】:

    如果你只想列出你需要告诉它的目录。

    Dir -R | ? { $_.PSIsContainer }
    

    Dir -R | ? { $_ -is [System.IO.DirectoryInfo] }
    

    在更新的 PowerShell 版本中,您可以直接执行此操作。

    Dir -Dir
    

    Dir = Get-ChildItem
    -R = -Recurse
    ? = Where-Object
    -Dir = -Directory

    【讨论】:

      【解决方案2】:

      如果你只想要命名目录中的目录,你不想递归。这将遍历整个目录层次结构;只需使用 -Directory 开关将输出过滤为仅包含目录。

      然后,您可以从 DirectoryInfo 对象中提取 Name 属性。

      PS C:\> dir C:\Windows -Directory |% { $_.Name }
      addins
      appcompat
      apppatch
      AppReadiness
      [...]
      

      并根据需要输出。更简洁:

      (dir C:\Windows -Directory).Name
      

      【讨论】:

        猜你喜欢
        • 2023-03-31
        • 1970-01-01
        • 2015-01-25
        • 1970-01-01
        • 2014-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多