在 Perforce 中列出特定计算机上用户的工作区

问题描述 投票:0回答:3

如何获取特定用户在特定机器上的所有 Perfoce 工作区?

此命令让我可以查看所有计算机上特定用户的所有工作区

P4 clients -u username
list perforce workspace
3个回答
3
投票

这是一个 cmd 语句,其功能与pitseeker 的大致相同:

for /f "tokens=2" %x in ('p4 clients -u username') do @(echo %x & p4 client -o %x | findstr /r /c:"^Host:")

一个更强大的批处理文件似乎适合您正在寻找的内容是:

@echo off
set USER=%1
set HOST=%2
REM Don't forget to double your for-loop percents in batch files,
REM unlike the one-liner above...
for /f "tokens=2" %%x in ('p4 clients -u %USER%') do call :CheckClient %%x
goto :EOF

:CheckClient
p4 client -o %1 | findstr /r /c:"^Host:" | findstr /i /r /c:"%HOST%$">nul && echo %1
goto :EOF

保存并运行它,将用户名作为第一个参数,将所需的主机名作为第二个参数。也就是说,类似

showclient elady elady_pc


2
投票

不完全是你所要求的,但它很简单,也许就足够了:

p4 clients -u username | cut -f2 -d' ' | xargs -n 1 p4 client -o  |egrep -e '^Client|^Host'

这列出了您的所有客户端及其主机限制(如果有)。 在结果列表中,您可以非常轻松地找到特定机器。


0
投票

以下命令通过使用自定义输出格式化程序返回主机名,而无需为每个客户端对

p4 client
进行额外的耗时调用:

p4 clients -ztag -F '%client% %Host%' clients -u username

然后,您可以使用您选择的脚本语言解析输出,例如电源外壳:

p4 clients -ztag -F '%client% %Host%' clients -u username | Select-String " hostname"

(注意空格)

要获取 -F 可以使用的可用格式化字段的列表,请使用“-e”或 -ztag 全局选项运行命令。

https://portal.perforce.com/s/article/15148

© www.soinside.com 2019 - 2024. All rights reserved.