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

Recursion 使用perforce命令将目录从perforce服务器递归复制到本地计算机(不创建工作空间)?,recursion,directory,copy,perforce,workspace,Recursion,Directory,Copy,Perforce,Workspace,我可以使用此命令将文件从远程Perforce server复制到本地计算机 p4 print -o <output_filename> <remote_filename> p4打印-o 然而,我这里有两个问题。 首先,我必须手动指定输出文件名。 其次,我无法打印出一个目录中的所有文件和子目录 我想做的是递归地处理从Perforce服务器到本地机器目录的特定目录,而不在本地机器上创建工作区 提前感谢您简单回答:放弃不在本地计算机上创建工作区的要求,并在本地计算机上创建工

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

p4 print -o <output_filename> <remote_filename>
p4打印-o
然而,我这里有两个问题。 首先,我必须手动指定输出文件名。 其次,我无法打印出一个目录中的所有文件和子目录

我想做的是递归地处理从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

简单回答:放弃不在本地计算机上创建工作区的要求,在本地计算机上创建工作区。创建工作区、
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

所以我遵循Sam Stafford的硬回答,在我想要复制的目录中列出每个文件的完整路径。然后,我将一个脚本编码到每个文件路径的子字符串中,以获取文件名。最后,我为每个文件运行了“print”命令。它类似于正则表达式,所以我遵循Sam Stafford的硬回答,在我想要复制的目录中列出每个文件的完整路径。然后,我将一个脚本编码到每个文件路径的子字符串中,以获取文件名。最后,我为每个文件运行了“print”命令。它类似于正则表达式。