我打算在superuser.com上问这个,但只有5个perforce标签,所以我来到这里...... 如何使用p4获取特定计算机上的工作空间列表?
我可以运行p4工作区,但这给了我所有这些。 如何将其过滤到特定的机器(客户端)名称。
答案 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下载页面的“实用工具”部分。