почему ткл ожидают выхода неожиданно? - PullRequest
2 голосов
/ 13 февраля 2011

В Windows я протестировал ожидаемый сценарий tcl следующим образом:

package require Expect
spawn "cmd.exe"
expect ">"
send "echo hello world\r"

Но вывод вывел «F:\Workspace\>», затем он завершился.Конечно, я ожидаю, что он выполняет "echo hello world"

Ответы [ 2 ]

4 голосов
/ 14 февраля 2011

Из-за того, как работает Expect for Windows (он использует специальный режим отладки), существуют определенные программы, которые не могут быть записаны;telnet.exe - это одно, а cmd.exe вполне может быть другим.(Для соответствующих исполняемых файлов системный бит установлен в их файловых флагах IIRC.)

К счастью, программы, из-за которых возникают проблемы, обычно являются теми, для которых не требуется для автоматизациис ожиданием.Tcl вполне способен напрямую общаться с другими машинами (открывая socket), а cmd часто не нужен и (в других случаях) прост в автоматизации, просто используя exec команда.Если это был всего лишь тест, который был прокси для вашей реальной автоматизации, не стоит слишком волноваться;попытайтесь автоматизировать настоящую программу, хотя просто сделайте что-то простое (например, аккуратно завершить работу), чтобы начать с нее и собрать ее.

0 голосов
/ 13 февраля 2011

Возможно, было бы лучше, если бы вы сказали мне проблему, которую вы действительно пытаетесь решить.Но в любом случае вам просто нужно набрать echo hello world вместо

send "echo hello world\r"

, чтобы получить требуемый результат.

ура Брайан

...