【问题标题】:How do I get a count of files in a folder in Perforce?如何在 Perforce 中获取文件夹中的文件数?
【发布时间】:2013-08-16 15:59:30
【问题描述】:

我想知道 Perforce 软件仓库的任何给定文件夹/目录/分支中有多少文件,但我没有办法做到这一点。 p4 fstat 命令是我的第一个想法,但它似乎没有返回文件计数的选项。有没有一种简单的方法来使用图形或命令行客户端获取文件夹中的文件数?

【问题讨论】:

    标签: perforce


    【解决方案1】:

    虽然p4 fstat 本身不提供获取文件计数的方法,但您可以轻松解析其输出以获取此信息。请注意,这适用于 Windows,但我想它很容易为其他操作系统修改。以下是你的做法:

    p4 fstat -T depotFile //depot/some/folder/... | find /c "... depotFile"
    

    也可以使用p4 files 命令来完成:

    p4 files //depot/some/folder/... | find /c "//"
    

    【讨论】:

    • 看来你已经明白了。请注意,如果您不想包含子文件夹,您可能应该使用“*”,而不是“...”,因为“...”包含子文件夹以及您命名的文件夹中的文件。您可能会尝试的另一个命令是“p4 文件”。但是 'p4 fstat' 非常适合您的目的,而且它非常快速和高效。顺便说一句,您的查询目的是什么?也就是说,您的工具会根据目录中有多少文件做出什么决定?
    【解决方案2】:

    试试这个命令:

    p4 files //depot/dir1/dir2/... | wc -l
    

    解释:

    1. p4 files //depot/dir1/dir2/...是递归打印dir2下的文件到屏幕的命令。

    2. 通过 wordcount 行 (| wc -l) 来计算输出行数。

    这适用于 Linux/Unix 系统,如果您使用的是 cygwin(或其他类似 Linux 的终端),则适用于 Windows。

    【讨论】:

      【解决方案3】:

      Powershell 方法:

      统计特定目录中的文件数:

      p4 files //depot/dir1/dir2/... | Measure-Object
      

      或者:

      (p4 files //depot/dir1/dir2/...).Count
      

      以下将为您提供一个对象中所有子目录及其文件计数的列表,您可以将其查看为表格、排序、导出到 csv 等:

      p4 dirs //depot/dir1/* | Select-Object -Property @{Name="Path";Expression={$PSItem}},@{Name="FileCounts";Expression={(p4 files $PSItem/...).Count}}
      

      【讨论】:

        【解决方案4】:

        使用p4 sizes -s 命令。

        C:\test>p4 sizes -s ...
        ... 5 files 342 bytes
        

        或者如果你只想要计数:

        C:\test>p4 -F %fileCount% sizes -s ...
        5
        

        (显然,文件参数可以是其他任何东西来代替当前目录...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-04-07
          • 1970-01-01
          • 2011-01-15
          • 1970-01-01
          • 1970-01-01
          • 2017-01-12
          • 2017-04-17
          相关资源
          最近更新 更多