在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'!) –