【问题标题】:Recursive listing of a particular file type in Windows PowerShellWindows PowerShell 中特定文件类型的递归列表
【发布时间】:2013-06-24 16:59:15
【问题描述】:

我试图使用 ls 递归列出 Windows PowerShell 目录中的所有 *.py 文件。它没有用。我检查了man 页面,然后online page 发现-Recurse 标志不接受通配符,所以*.py 不起作用。

我想知道是否有一种简单的内置方法可以使用 Windows PowerShell 2.0 递归地列出目录中特定文件扩展名的文件?

我是 PowerShell 的新手,现阶段不想沉迷于 Shell 脚本。因此,请仅推荐内置命令、标志等(如果有)。

我所说的命令是指 PowerShell 的内置关键字。我不确定这是否是 PowerShell 的正确词汇。

【问题讨论】:

    标签: windows powershell windows-7 wildcard


    【解决方案1】:

    使用过滤器参数:

    ls $path -filter *.py -recurse
    

    【讨论】:

      【解决方案2】:

      这将为您解决问题。

      gci -Recurse | ? {$_.name -match ".py"}
      

      gci -Recurse -Include *.py
      

      【讨论】:

        【解决方案3】:

        ls 是 Get-ChildItem 的别名。 (dir 和 gci 也是如此)。一个简单的 Google 会为您提供各种示例,但要知道的是 -include(或 -exclude)内置参数,将显示(或不显示)您正在查找的文件类型。附加参数 -filter 也可用于部分文件类型。开关参数 -recurse 也会检查目录中子文件夹的内容。示例01: gci -path \$computername\$directory -Include *.py -recurse 示例02: gci -path \$computername\$directory -Filter *.py -recurse

        我喜欢抑制错误,因此完整示例如下所示: gci -path \Svr01\C$ -Include *.py -recurse -erroraction SilentlyContinue

        【讨论】:

          【解决方案4】:

          我看不出任何人会在任何时候得到这个工作。

          gci -recurse 工作正常并列出所有 gci -filter *.txt 工作正常,列出所有 .txt 文件但不递归

          gci -filter *.txt -recurse 仅从根目录返回 .txt 文件或不返回任何内容。 似乎将 *.txt 过滤器应用于目录名称,因此看不到目录,因此根本不递归。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-01-12
            • 2011-04-09
            • 2011-04-01
            • 2019-02-20
            • 1970-01-01
            • 2014-04-09
            • 1970-01-01
            相关资源
            最近更新 更多