如何将密码通过管道传递给 perforce p4 login 命令以实现自动登录?

How to pipe password to perforce p4 login command for automate login?

我需要知道从 powershell 执行 perforce p4 登录时如何传递密码。当执行 p4 登录时,会出现 enter password: 字段,因此我无法自动执行登录步骤。我需要使用 p4 login 命令传递密码,以便可以自动执行。请建议如何做到这一点。我确实尝试过 "p4 -u user -P password login " 但没有成功。

如您所说,将密码传递给登录命令:

echo password|p4 -u user login

p4 login 不会从 P4PASSWD(或等效的 -P 标志)读取明文密码,因为在您的环境或文件中使用明文密码是一种安全责任(任何能够读取该文件的人现在都可以从任何地方以您的身份登录)因此不鼓励。

说到这一点,出于类似的原因,不鼓励将密码放入脚本中以实现自动化 p4 login。 :) 这样做的推荐方法是要求用户在 运行 脚本之前登录(默认登录持续 12 小时,所以如果你是 运行 一堆脚本,你仍然只需要每天登录一次)。

如果脚本是您不能让人类用户每天输入密码的全自动作业的一部分,那么建议的策略是为自动化用户提供一个不会过期的票证(绑定到该 IP ) 并在脚本中对其进行硬编码。

在 PowerShell 中,您可以使用此代码段:

p4 set P4USER=$user
$password | p4 login

注意: p4 set P4PASSWD=... 不起作用。