实际上我需要编写一个批处理脚本,在这个脚本中,首先我需要检查所需的客户端规范是否已经存在。
如果已经存在,那么我应该将其删除。请问您能告诉我们如何在脚本中检查所需的客户端规范是否存在吗?
实际上我需要编写一个批处理脚本,在这个脚本中,首先我需要检查所需的客户端规范是否已经存在。
如果已经存在,那么我应该将其删除。请问您能告诉我们如何在脚本中检查所需的客户端规范是否存在吗?
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
感谢来自Perforce在线聊天支持的Adam!
p4 -ztag clients -e bad
如果客户端不存在,它将不返回任何内容。
尝试:
p4 client -o -t $CLIENT_NAME_YOU_WANT_TO_CHECK
Client '$CLIENT_NAME_YOU_WANT_TO_CHECK' doesn't exist.
执行 p4 client -o client_name
命令,并检查 Update: 或 Access: 字段是否存在。这些字段将为已存在的客户端设置,但对于不存在的客户端则不会。
如果您使用的是2013.2或更高版本的客户端,则可以使用格式化输出使其更加容易。
p4 -ztag -F "%Update%" client -o client_name
命令将返回一个包含现有客户端的日期和时间字符串,或者对于不存在的客户端则不返回任何内容。
我看到你的评论,知道你找到了解决方案,但这里还有另一种方法...
如果你想通过该名称删除客户端,你可以尝试直接删除客户端而不必调用p4 clients
。如果客户端存在,则会被删除(除非它有未提交的文件等)。如果不存在,则不会发生任何事情 - 没有伤害,也没有损失。
提示:使用--exists
功能与-o
一起使用。
例如,尝试:p4 client --exists -o SomeWorkspace
如果数据库中存在SomeWorkspace
,则会显示客户端规范和0退出代码。
如果不存在,则会获得非零退出代码和错误消息,例如:
Client 'SomeWorkspace' doesn't exist.
这适用于各种规范类型(用户、客户端、流等)。