使用p4获取特定计算机上的工作空间列表

时间:2010-05-15 00:58:31

标签: perforce

我打算在superuser.com上问这个,但只有5个perforce标签,所以我来到这里...... 如何使用p4获取特定计算机上的工作空间列表?

我可以运行p4工作区,但这给了我所有这些。 如何将其过滤到特定的机器(客户端)名称。

2 个答案:

答案 0 :(得分:9)

取决于您的环境。我已经包含了一个基本的Windows批处理文件来执行此操作。

运行p4 clients。从每一行中拉出第二个单词,即客户名称。运行p4 client -o <name>。 Grep for ^Host:.*\b<hostname>\b。如果grep返回成功,则该客户端用于该计算机。累积清单。

在Windows中:

set CLIENTS=

for /f "tokens=2" %%c in ('p4 clients') do call :ProcessClient %%c

echo clients on %HOSTNAME% are %CLIENTS%
pause
goto :eof

:ProcessClient
    for /f "tokens=1,2" %%h in ('p4 client -o %1') do if "Host:%HOSTNAME%"=="%%h%%i" set CLIENTS=%CLIENTS% %1
    goto :eof

答案 1 :(得分:4)

我知道您使用P4指定了,但您也可以查看P4Report,它为您提供对Perforce的SQL查询访问。安装后,您只需要一个类似的查询:

SELECT clients.client FROM clients WHERE (clients.host='enter your machine here')

你也可以从命令行做(p4sql -s“查询字符串”)所以如果你不介意用P4SQL代替P4,你可以比脚本建议更简洁。

P4Report可以在工具和工具中找到。 Perforce下载页面的“实用工具”部分。