2016-12-17 55 views
0

我使用安裝了Expect軟件包的Windows上ActiveState的ActiveTcl的Community Edition。我曾嘗試編寫自己的腳本,從各種網站下載一些腳本,甚至從ActiveState網站上覆制粘貼它們,但我總是遇到同樣的問題。我的腳本可以完美地發送命令,並按預期配置網絡設備,但只能通過將睡眠週期夾在發送中。每當我嘗試與期望匹配時,我總是會得到相同的東西(當使用exp_internal 1時):expect:「」(spawn_id exp4)是否匹配glob模式「AnyString」?沒有。和正則表達式一樣:expect:「」(spawn_id exp4)匹配正則表達式「AnyString」?沒有。似乎工作的唯一時間是使用單個通配符:expect:「」(spawn_id exp4)是否匹配glob模式「*」? yes expect:set expect_out(0,string)「」 expect:set expect_out(spawn_id)「exp4」 expect:set expect_out(buffer)「」 但是沒有其他的通配符組合,literal或regex似乎工作。我看過視頻並看過截圖。從我所能預料的應該迭代每個角色直到找到一個匹配,但它從字面上停止在「」,超時,並繼續到下一行。如果expect命令在Expect中不起作用,我確信我正在做一些明顯根本性錯誤的事情,但我只是不知道該怎麼做。就好像它不能讀取任何終端輸出,但發送命令完美工作,所以我知道它已連接。無論我嘗試的終端程序(telnet,plink,netcat等)都有同樣的問題。期待真的似乎是一個令人敬畏的自動化工具,所以我非常感謝任何可能幫助我解決問題的建議。收到答覆後,我完全期待自己感到很蠢。期望腳本不能匹配

回答

0

這可能是由於在更高版本的Windows上使用Expect時出現的已知問題,而這些問題很遺憾地記錄在案。預計可能工作在Win7或Win8上,可能不在Win10上。它通常在32位Windows上比在64位Windows上更好。