实际上我需要编写一个批处理脚本,首先我需要检查所需的客户端规范是否已经存在?如果存在,那么我应该删除它。
如果所需的客户端规范存在或不存在,您能否告诉我们如何签入脚本?
实际上我需要编写一个批处理脚本,首先我需要检查所需的客户端规范是否已经存在?如果存在,那么我应该删除它。
如果所需的客户端规范存在或不存在,您能否告诉我们如何签入脚本?
在 Windows 命令行上,您可以执行以下操作
set P4CLIENT=client-name
p4 clients -e %P4CLIENT% | findstr %P4CLIENT% >nul
p4 clients -e %P4CLIENT%
将输出所有匹配的客户端%P4CLIENT%
。findstr
将搜索p4 clients
客户端名称的输出并打印它。重定向到 tonul
将抑制此输出,但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_NAME_YOU_WANT_TO_CHECK 实际存在) - 它会在不进入编辑器的情况下将其规范显示为 STDOUT 的文本,如果客户端不存在 - 它只是输出到 STDERR:
Client '$CLIENT_NAME_YOU_WANT_TO_CHECK' doesn't exist.
“-o”将其打印在屏幕上,而不是实际创建客户端……好技巧,对我有用,希望对您有所帮助:)
我从您的评论中看到您找到了解决方案,但这是另一种看法......
如果您想删除该名称的客户端,您可以p4 clients
通过尝试删除客户端来节省自己的通话时间。如果它存在,它将被删除(除非它有搁置文件等)。如果它不存在,那么它就是无操作 - 没有伤害,没有犯规。
执行p4 client -o client_name
并检查是否存在更新:或访问:字段。这些将为已经存在的客户端设置,但不会为不存在的客户端设置。
如果您有 2013.2 或更高版本的客户端,您可以使用格式化输出使其更容易。
p4 -ztag -F "%Update%" client -o client_name
将为现有客户返回一个带有日期和时间的字符串,或者为不存在的客户返回任何内容。