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

Perforce 使用p4获取特定计算机上的工作区列表,perforce,Perforce,我本来想在superuser.com上问这个问题,但是只有5个perforce标签,所以我来到这里。。。 如何使用p4获取特定计算机上的工作区列表 我可以运行p4工作区,但这给了我所有的工作区。 如何将其筛选为特定的计算机(客户端)名称。取决于您的环境。为此,我提供了一个基本的Windows批处理文件 运行p4客户端。从每行中抽出第二个单词,即客户机名称。运行p4客户端-o。^主机的Grep:.*\b\b。如果grep返回success,则该客户机是针对该机器的。累积列表 在Windows中:

我本来想在superuser.com上问这个问题,但是只有5个perforce标签,所以我来到这里。。。 如何使用p4获取特定计算机上的工作区列表

我可以运行p4工作区,但这给了我所有的工作区。
如何将其筛选为特定的计算机(客户端)名称。

取决于您的环境。为此,我提供了一个基本的Windows批处理文件

运行
p4客户端
。从每行中抽出第二个单词,即客户机名称。运行
p4客户端-o
^主机的Grep:.*\b\b
。如果grep返回success,则该客户机是针对该机器的。累积列表

在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

我知道您指定使用P4,但您也可以查看P4Report,它为您提供对Perforce的SQL查询访问。安装后,您只需进行如下查询:

SELECT clients.client FROM clients WHERE (clients.host='enter your machine here')
您也可以从命令行(p4sql-s“query string”)执行此操作,因此如果您不介意在中用p4sql替换P4,您可以比脚本建议的更简洁


P4Report可在Performce下载页面的工具和实用程序部分找到。

在您的第二段中,您的意思是“再次运行
p4客户端-o
”,而不是
工作区
?这就是你在批处理脚本中看到的。啊,是的,我在写批处理文件和写这篇关于批处理文件的文章之间陷入了P4V术语“客户机”和“工作区”是可以互换的,尽管在第二种情况下它不应该是复数。我会修好的。