我正打算在superuser.com上问这个问题,但是只有5个强制标签,所以我来到了这里…如何使用p4获取特定计算机上的工作空间列表?
我可以运行p4工作区,但这给了我所有的工作空间。如何将其过滤到特定的计算机(客户端)名称。
发布于 2010-05-15 09:03:02
取决于您的环境。为此,我已经包含了一个基本的Windows批处理文件。
运行p4 clients。从每一行中取出第二个单词,这就是客户名称。运行p4 client -o <name>。^Host:.*\b<hostname>\b的Grep。如果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发布于 2010-05-18 20:30:53
我知道您指定使用P4,但您也可以查看P4Report,它为您提供了对Perforce的SQL查询访问。安装后,您只需要一个类似于以下内容的查询:
SELECT clients.client FROM clients WHERE (clients.host='enter your machine here')您也可以从命令行(p4sql -s“查询字符串”)来执行此操作,所以如果您不介意在中用P4SQL代替P4,那么您可以使用比脚本建议的更简洁的代码。
P4Report可以在Perforce下载页面的工具和实用程序部分找到。
https://stackoverflow.com/questions/2838474
复制相似问题