Perforce:是否有任何命令来检查客户端规范是否存在

时间:2013-10-28 09:27:45

标签: perforce perforce-client-spec

实际上我需要编写一个批处理脚本,首先我需要检查所需的客户端规范是否已经存在? 如果存在,那么我应该删除它。

如果存在所需的客户端规范,请告诉我们如何检查脚本?

5 个答案:

答案 0 :(得分:3)

尝试:

p4 client -o -t $CLIENT_NAME_YOU_WANT_TO_CHECK

这是做什么的 - 试图创建客户端从其他客户的规范作为模板到我的"新客户"。

如果有输出(意味着$ CLIENT_NAME_YOU_WANT_TO_CHECK实际存在) - 它会在没有进入编辑器的情况下将其规范显示为STDOUT的文本,如果客户端不存在 - 它只输出到STDERR:

Client '$CLIENT_NAME_YOU_WANT_TO_CHECK' doesn't exist.

" -o"将其打印在屏幕上而不是实际创建客户端... 很好的技巧,为我做的工作,希望它有所帮助:)

答案 1 :(得分:3)

在Windows命令行上,您可以执行类似这样的操作

set P4CLIENT=client-name
p4 clients -e %P4CLIENT% | findstr %P4CLIENT% >nul

p4 clients -e %P4CLIENT%将输出与%P4CLIENT%匹配的所有客户。 findstr将在p4 clients的输出中搜索客户端名称并将其打印出来。重定向到nul将限制此输出,但findstr将另外设置%errorlevel%变量。

一些例子:

p4 clients -e existing-client | findstr existing-client >nul
echo %errorlevel%

将返回0。

p4 clients -e does-not-exists | findstr does-not-exists >nul
echo %errorlevel%

将返回1.

如果要执行某些操作,如果给定的客户端空间存在,则可以运行此命令:

p4 clients -e does-not-exists | findstr does-not-exists >nul || create-client.bat

如果要执行某些操作,如果存在给定的客户端空间,则可以运行以下命令:

p4 clients -e does-not-exists | findstr does-not-exists >nul && do-something.bat

感谢Adam来自perforce在线聊天支持!

答案 2 :(得分:1)

我在评论中看到你找到了一个解决方案,但这是另一个......

如果您想按该名称删除客户端,只需尝试删除客户端,即可自行保存对p4 clients的调用。如果它存在,它将被删除(除非它有搁置的文件等)。如果它不存在,那么这是一个无操作 - 没有伤害,没有犯规。

答案 3 :(得分:1)

执行p4 client -o client_name并检查是否存在Update:或Access:字段。这些将设置为已存在的客户端,但不适用于不存在的客户端。

如果您拥有2013.2或更高版本的客户端,则可以使用格式化输出使其更加轻松。

p4 -ztag -F "%Update%" client -o client_name将返回带有日期&的字符串。现有客户的时间,或者不存在客户的时间。

答案 4 :(得分:1)

我发现此命令有效:

p4 -ztag clients -e bad
如果客户端不存在

,它将不返回任何内容