在Windows上,我测试了一个tcl expect脚本,如下所示:
package require Expect
spawn "cmd.exe"
expect ">"
send "echo hello world\r"
但输出打印“F:\Workspace\>
”,然后退出。
对于cource,我希望它执行“echo hello world
”
答案 0 :(得分:4)
由于Expect for Windows的工作方式(它使用特殊的调试模式),某些程序无法捕获; telnet.exe是一个,cmd.exe可能是另一个。 (相关的可执行文件在其文件标志IIRC中设置了系统位。)
幸运的是,导致问题的程序通常是您实际上不需要使用Expect进行自动化的程序。 Tcl能够直接与其他机器通信(通过打开socket
),并且通常只需要使用exec
命令就可以轻松实现cmd(在其他情况下)。如果这只是一个代表您的真实自动化的测试,那么现在不要太担心;尝试自动化真正的程序,虽然只是做一些简单的事情(比如干净地退出)开始并从那里开始构建。
答案 1 :(得分:0)
如果你告诉我你真正试图解决的问题可能会更好。但无论如何,你只需要打字
echo hello world
而不是
send "echo hello world\r"
获得您需要的结果。
欢呼声 布赖恩