【发布时间】:2013-08-16 15:59:30
【问题描述】:
我想知道 Perforce 软件仓库的任何给定文件夹/目录/分支中有多少文件,但我没有办法做到这一点。 p4 fstat 命令是我的第一个想法,但它似乎没有返回文件计数的选项。有没有一种简单的方法来使用图形或命令行客户端获取文件夹中的文件数?
【问题讨论】:
标签: perforce
我想知道 Perforce 软件仓库的任何给定文件夹/目录/分支中有多少文件,但我没有办法做到这一点。 p4 fstat 命令是我的第一个想法,但它似乎没有返回文件计数的选项。有没有一种简单的方法来使用图形或命令行客户端获取文件夹中的文件数?
【问题讨论】:
标签: perforce
虽然p4 fstat 本身不提供获取文件计数的方法,但您可以轻松解析其输出以获取此信息。请注意,这适用于 Windows,但我想它很容易为其他操作系统修改。以下是你的做法:
p4 fstat -T depotFile //depot/some/folder/... | find /c "... depotFile"
也可以使用p4 files 命令来完成:
p4 files //depot/some/folder/... | find /c "//"
【讨论】:
试试这个命令:
p4 files //depot/dir1/dir2/... | wc -l
解释:
p4 files //depot/dir1/dir2/...是递归打印dir2下的文件到屏幕的命令。
通过 wordcount 行 (| wc -l) 来计算输出行数。
这适用于 Linux/Unix 系统,如果您使用的是 cygwin(或其他类似 Linux 的终端),则适用于 Windows。
【讨论】:
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}}
【讨论】:
使用p4 sizes -s 命令。
C:\test>p4 sizes -s ...
... 5 files 342 bytes
或者如果你只想要计数:
C:\test>p4 -F %fileCount% sizes -s ...
5
(显然,文件参数可以是其他任何东西来代替当前目录...)
【讨论】: