我正在使用perl和
运行tcl(具有期望的脚本)system("C:/Tcl/bin/tclsh86 C:/Users/sysadmin/desktop/expect.tcl");
它没有在脚本中执行所有命令,但它在ubuntu上运行正常。 我应该使用什么命令在Windows上使用perl完全运行它?
答案 0 :(得分:0)
在Unix上Expect使用虚拟终端工作。相比之下,Windows上的Expect使用调试子系统。 (Windows上没有没有像虚拟终端一样。)这有一个标记为无法调试的程序(即一些系统程序,特别是telnet.exe
虽然{{ 1}}也可能在该列表上)根本不能通过Expect自动化。操作系统只是拒绝让Expect连接到进程。
这是发生在你身上的事吗?我无法从您提供的最小信息中分辨出来,但它是迄今为止在平台之间移植Expect脚本时遇到问题的最常见原因(一旦您考虑到不同的路径和程序之类的普通事物在所有平台上都有。)
最重要的是,Tcl和Perl都能够直接与您使用ftp.exe
或telnet
进行交谈的任何内容进行交谈(因为两者都完全熟练掌握TCP / IP )。事实上,两者都可能比通过使用Expect可能实现的任何东西更好地进行本地化。