是的,你可以这样做。使用pexpect
.
但我必须注意,如果不安装 cygwin,就不能在 Windows 上使用 pexpect。当您想在没有 cygwin 的情况下直接在 Windows 上运行程序时,您需要使用winexpect
( https://bitbucket.org/geertj/winpexpect/wiki/Home )。
Pexpect/Winexpect 使用示例:
#!/usr/bin/env python
import pexpect
ssh_newkey = 'Are you sure you want to continue connecting'
# my ssh command line
p=pexpect.spawn('ssh mysurface@192.168.1.105 uname -a')
i=p.expect([ssh_newkey,'password:',pexpect.EOF])
if i==0:
print "I say yes"
p.sendline('yes')
i=p.expect([ssh_newkey,'password:',pexpect.EOF])
if i==1:
print "I give password",
p.sendline("mypassword")
p.expect(pexpect.EOF)
elif i==2:
print "I either got key or connection timeout"
pass
print p.before # print out the result
在您的情况下,您必须使用plink
代替ssh
和winexpect
代替pexpect
。