如何检测是否打开了 perforce 会话?
How to detect if a perforce session is opened?
我需要检测是否从本地shell 或通过在P4V 中双击执行了批处理文件。有什么方法可以检查 P4V 是否打开?
起初我想用this的方式来做,
但一如既往,TIMTOWTDI。有什么想法吗?
简短回答:不,不是。
长答案:
您可以按照您的建议尝试通过检查 运行ning p4v.exe 进程来伪造它。不过,这只会告诉您 P4V 是否打开。如果您在另一个 window 中打开了 P4V,并且您 运行 来自 shell 的批处理文件(例如,在资源管理器中双击,或 运行 在 cmd 提示符下打开它) ,你会得到误报。
您可能采用的另一种方法是确定脚本是否在 Perforce 客户端工作区内。这可以通过让脚本 运行 a "p4 where" 在它自己的路径上来查看它是否在工作区内来完成——但这取决于脚本的执行环境是否具有正确的连接设置,这取决于正在配置的客户端计算机 "nicely"(例如,使用 P4CONFIG 文件 and/or "p4 set",所有 Perforce 客户端应用程序都可以访问这些文件——如果您专门使用 P4V,则其连接设置将不容易访问你的脚本)。
我需要检测是否从本地shell 或通过在P4V 中双击执行了批处理文件。有什么方法可以检查 P4V 是否打开?
起初我想用this的方式来做, 但一如既往,TIMTOWTDI。有什么想法吗?
简短回答:不,不是。
长答案:
您可以按照您的建议尝试通过检查 运行ning p4v.exe 进程来伪造它。不过,这只会告诉您 P4V 是否打开。如果您在另一个 window 中打开了 P4V,并且您 运行 来自 shell 的批处理文件(例如,在资源管理器中双击,或 运行 在 cmd 提示符下打开它) ,你会得到误报。
您可能采用的另一种方法是确定脚本是否在 Perforce 客户端工作区内。这可以通过让脚本 运行 a "p4 where" 在它自己的路径上来查看它是否在工作区内来完成——但这取决于脚本的执行环境是否具有正确的连接设置,这取决于正在配置的客户端计算机 "nicely"(例如,使用 P4CONFIG 文件 and/or "p4 set",所有 Perforce 客户端应用程序都可以访问这些文件——如果您专门使用 P4V,则其连接设置将不容易访问你的脚本)。