2016-05-14 193 views
0

我正在用perl與TCL(其預計腳本)用perl,執行TCL(expect腳本)在Windows

system("C:/Tcl/bin/tclsh86 C:/Users/sysadmin/desktop/expect.tcl"); 

這不是在腳本執行的所有命令,但其做工精細在Ubuntu上。 我應該使用什麼命令在Windows上完全使用perl來運行這個命令?

+0

您是否在Windows中安裝了TCL編譯器? – mkHun

+0

是的,我安裝了(tclsh86),它沒有顯示任何錯誤,但完整的tcl(expect)腳本沒有執行 – john

+0

你怎麼知道它沒有運行所有的命令?給我們看點什麼。 –

回答

0

在Unix上,Expect使用虛擬終端工作。相比之下,Windows上的Expect使用調試子系統。 (有什麼像在Windows虛擬終端)。這有不利的方面是標記爲無法調試程序(即,一些系統程序,特別是包括telnet.exe雖然ftp.exe也可能是名單上)無法實現自動化通過期待。操作系統拒絕讓Expect連接到進程。

這是發生在你身上的事情嗎?我無法從您提供的最基本的信息中知道,但這是迄今爲止在平臺之間移植Expect腳本時出現問題的最常見原因(一旦您考慮了像不同路徑和程序這樣的普通事情,在所有平臺上都有)。另一方面,Tcl和Perl可以直接與任何你想用telnetftp進行交談的任何對象(因爲它們都完全熟悉TCP/IP)。事實上,兩者在本質上可能比通過使用Expect可能實現的更好。