为什么tcl意外退出?

时间:2011-02-13 14:02:11

标签: windows tcl exit expect

在Windows上,我测试了一个tcl expect脚本,如下所示:

package require Expect
spawn "cmd.exe"
expect ">"
send "echo hello world\r"

但输出打印“F:\Workspace\>”,然后退出。 对于cource,我希望它执行“echo hello world

2 个答案:

答案 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"

获得您需要的结果。

欢呼声 布赖恩