请问怎样为命令行提供密码

请问怎样为命令行提供密码

我现在用python写一个脚本程序,运行在windows平台,因为这个脚本需要在晚上登陆远程CVS服务器,
从服务器上取代码,晚上进行编译程序做测试。因此开始需要cvs login登陆CVS服务器。但现在问题是。CVS不提供在命令行指定密码的命令。因此需要在敲入命令
cvs -d :pserver:user@xx.com:/var/lib/cvs/sandbox login后,

然后根据提示输入密码。
但这样我的脚本就不能在晚上自动运行了。请问斑竹,我应该怎样才能把密码传递到这个命令中去。我也看了下sys.stdout重定向。想能否通过模拟一个管道一样进行输入,请问斑竹应该怎样解决,在这里先谢了。




strCommand="cvs -d :pserver:user@xx.com:/var/lib/cvs/sandbox login"
os.system(strCommand)


QUOTE:
原帖由 lusec3 于 2006-6-2 20:19 发表
我现在用python写一个脚本程序,运行在windows平台,因为这个脚本需要在晚上登陆远程CVS服务器,
从服务器上取代码,晚上进行编译程序做测试。因此开始需要cvs login登陆CVS服务器。但现在问题是。CVS不提供在命 ...

用ssh的公开密钥实现如何?这样可以不用输入口令,客户机只要有一个私钥文件即可。
稍微新点的wincvs都可以这么指定CVSROOT

[Copy to clipboard] [ - ]
CODE:
:pserver;username=${username};password=${passwd};hostname=${host}:${path}

谢谢,昨天找到了个方法可以这样实现
#!/usr/bin/python
#FileName:stdin_eg.py

import StringIO
import string,sys

stdin=sys.stdin
sys.stdin=file=StringIO.StringIO(23)
rawinput=int(raw_input("raw input:"))
#print file.getvalue()

print rawinput
sys.stdin=stdin

>>>
raw input:23
好象不怎么行啊,为什么raw_input()可以实现输入。在CVS中不进行输入了。
#!/usr/bin/python
#FileName:nightbuild.py

import string
import os
import sys
import StringIO

localDir="c:\\cvs\\"
strPserver="cvs -d :pserver:username@xxx.com:/var/lib/cvs/sandbox"
os.chdir(localDir)
strCommand=strPserver+" login"
print strCommand
stdin=sys.stdin
sys.stdin=file=StringIO.StringIO("123456")
os.system(strCommand)


print file.getvalue()
sys.stdin=stdin
strCommand=strPserver+ " checkout jinson"
os.system(strCommand)

但这里还是要根据提示输入密码。而不是自动输入。另外cvs 确实支持指定密码的,虽然在cvs -help中查看不到,实际是支持的。但我还是想知道为什么在这里
sys.stdin=file=StringIO.StringIO("123456")
os.system(strCommand)
不能执行