我正在从Debian远程执行Windows中的命令行。为此,我尝试使用下面的bash脚本。使用expect工具,它包括通过telnet连接到远程服务器,输入用户名和密码值,并发送所需的命令行。
#!/usr/bin/expect
set timeout 20
set name 192.168.1.46
set user Administrateur
set password MSapp/*2013
set cmd "TASKKILL /F /IM Tomcat6.exe"
spawn telnet 192.168.1.46
expect "login:"
send "$user\r"
expect "password:"
send "$password\r"
expect "C:\Users\Administrateur>"
send "$cmd\r"电信网络连接已经建立起来。但是,命令行没有执行。
有人能告诉我我的剧本怎么了吗?
发布于 2015-02-04 11:24:07
只需在末尾再添加一条expect语句,如下所示,
send "$cmd\r"
expect "C:\Users\Administrateur>"基本上,expect将使用两个可行的命令,如send和expect。如果使用send,则必须在以后使用expect (在大多数情况下)。(反之亦然,反之亦然)
这是因为如果没有这一点,我们将忽略生成进程中正在发生的事情,因为expect将假设您只需要发送一个字符串值,而不需要期待会话中的任何其他内容。
https://stackoverflow.com/questions/28319804
复制相似问题