在Windows上,我測試了TCL的expect腳本如下:爲什麼tcl期望意外退出?
package require Expect
spawn "cmd.exe"
expect ">"
send "echo hello world\r"
但印有 「F:\Workspace\>
」 的輸出,那麼它退出。我希望它執行「echo hello world
」
在Windows上,我測試了TCL的expect腳本如下:爲什麼tcl期望意外退出?
package require Expect
spawn "cmd.exe"
expect ">"
send "echo hello world\r"
但印有 「F:\Workspace\>
」 的輸出,那麼它退出。我希望它執行「echo hello world
」
如果你告訴我你真的想解決的問題可能會更好。但無論如何,你只需要輸入 echo hello world
而不是
send "echo hello world\r"
得到你需要的結果。
歡呼 布賴恩
我不知道爲什麼有人給我-1。在Windows上Expect的問題是衆所周知的。這就是爲什麼我問原來的提問者他真的想要解決什麼問題。與此同時,我給出的解決方案實際上工作,即如果你拿他的代碼,並用'echo hello world'替換'send'行,它就會按照他的要求做,即「我希望它執行」echo hello world「」 – TrojanName
我沒有降低你的表現,但我猜測原因在於你沒有注意到提問者(可能)*真的*即將與其他應用程序一起工作並將CMD.EXE用作實驗的事實。 (畢竟,你實際上並不打算在生產中像這樣自動化CMD;它不需要它!)這意味着你的建議完全沒有幫助;與我的回答指出問題可能是什麼(CMD上的系統是神奇的)並且我希望鼓勵提問者用他們真實的應用程序進行嘗試。 –
換句話說,當回答一個問題時,你必須考慮爲什麼對方會問這個問題,並以他們能夠理解和接受的方式表達對他們有幫助的答案。這需要大量的練習。 –
FTP是您不需要使用Expect的另一個程序; Tcllib中有一個完全適合的FTP客戶端(奇怪地稱爲'ftp'!) –