Perforce:将脚本作为特定用户和工作区运行

时间:2015-05-13 15:28:28

标签: perforce

我有一个执行各种功能的powershell脚本,包括运行p4命令,如同步,创建更改列表和检查文件,创建标签等。当我在我的开发环境中以我的用户身份运行它时,我的脚本运行正常

现在,我想在另一台计算机上针对特定工作区和特定Perforce用户运行该脚本。是否有一些命令可以添加到我的脚本的开头,以便我可以设置perforce用户并为脚本的其余部分使用特定的工作区?如果是,我想知道两种方法,一种是明文密码(用于测试和验证),另一种是没有密码(用于生产)。

发布:我认为我的部分问题是我不完全了解会话用户的确定方式。在另一台机器上,如果我尝试运行任何p4命令,我会收到消息:" Perforce密码(P4PASSWD)无效或未设置。"即使我尝试,我也收到了这条消息:

p4 login abc

" ABC"可以是任何东西,我得到相同的信息。我认为"登录"我一定是错的。命令可用于以特定用户身份登录。我希望它能提示我输入abc的密码,而不是告诉我在我以其他人身份登录之前需要设置密码。

但如果我输入:

p4 login

我被提示输入密码。但对于那个用户会是什么?我的Windows帐户用户?如果我没有与我的Windows帐户用户同名的perforce用户怎么办?

2 个答案:

答案 0 :(得分:2)

这是您需要的文档页面:

http://www.perforce.com/perforce/doc.current/manuals/cmdref/envars.html

一般情况下,这应该可以解决问题(使用当前版本的命令行客户端支持" p4 set"在所有平台上):

p4 set P4USER=username
p4 set P4CLIENT=clientname
p4 login

" p4登录USERNAME"当您已经以超级用户身份登录以获取其他用户的登录票证(没有密码提示)时,将使用语法。像所有其他命令一样," p4登录"使用您的P4USER来确定您以何种方式运行命令。

答案 1 :(得分:1)

要通过Powershell自动登录,登录-a表示允许从任何ip登录...

$USER = "My.User"
$PASS = "P455w0rd"
Out-File -FilePath C:\p4pass.txt -InputObject $PASS -Encoding ASCII -Width 50
cmd /c "p4 -u $USER login -a < `"C:\p4pass.txt`" " 2>&1 

要指定用户,工作空间和服务器:端口,请在perforce命令之前添加以下内容...例如:

p4 -u ${USER} -c ${WORKSPACE} -p ${perforce:1666} login -a

p4 -u ${USER} -c ${WORKSPACE} -p ${perforce:1666} sync -f -q //...#head

要指定票证,请从命令获取票证:

p4 tickets

并使用大写字母-P进行指定,例如:

p4 -u username -P 5E8ED75FB5086BE82D9BCD5561D32AEE sync...