使用 perforce 命令将目录从 perforce 服务器递归复制到本地计算机(不创建工作 space)?

Copy a directory recursively from perforce server to local machine (without creating working space) using perforce command?

我可以使用此命令将文件从远程 Perforce 服务器复制到我的本地计算机

p4 print -o <output_filename> <remote_filename>

但是,我这里有两个问题。 首先,我必须手动指定我的输出文件名。 其次,我无法打印出目录中的所有文件和子目录。

我想做的是将特定目录从 Perforce 服务器递归复制到我的本地计算机目录,而不在我的本地计算机上创建工作区。

简单回答:放弃不在本地计算机上创建工作区的要求,并在本地计算机上创建工作区。 创建工作区 sync -p 和删除工作区 比重新实现 p4 sync.

更容易、更快捷
p4 --field "View=//depot/path/... //TEMPCLIENT/..." --field "Root=C:\output_path" client -o TEMPCLIENT | p4 client -i
p4 -c TEMPCLIENT sync -p
p4 client -d TEMPCLIENT

硬性回答:实现您自己的视图映射逻辑。使用 p4 files //depot/path/... 获取文件列表,然后使用正则表达式将每个 depot 文件映射到本地文件,然后 运行 对每一对使用 p4 print 命令。它看起来像:

p4 -F %depotFile% files //depot/path/... | (some gnarly piece of awk/sed/perl that takes "depotFile" as input and produces "print -o localFile depotFile" as output) | p4 -x - run