实际上我需要编写一个批处理脚本,首先我需要检查所需的客户端规范是否已经存在? 如果存在,那么我应该删除它。
如果存在所需的客户端规范,请告诉我们如何检查脚本?
答案 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
如果客户端不存在,它将不返回任何内容