Ожидаемые сценарии не могут совпадать

Я использую Community Edition ActiveTcl из ActiveState для Windows с установленным пакетом Expect. Я пытался написать свои собственные сценарии, загрузить некоторые из различных веб-сайтов и даже скопировать и вставить их с самого сайта ActiveState, но я всегда сталкиваюсь с одной и той же проблемой. Мои сценарии могут отлично отправлять команды и настраивать сетевые устройства, как и ожидалось, но только путем сэндвич-отправки с периодами ожидания. Всякий раз, когда я пытаюсь сопоставить что-либо с ожидаемым, я всегда получаю одно и то же (при использовании exp_internal 1): ожидаем: "" (spawn_id exp4) совпадает с шаблоном глобуса "AnyString"? нет. И то же самое для регулярных выражений: ожидаем: "" (spawn_id exp4) соответствует регулярному выражению "AnyString"? нет. Единственный раз, когда кажется, что это работает, с одним подстановочным знаком: ожидайте: "" (spawn_id exp4) соответствует шаблону глобуса "*"? да, ожидайте: установите ожидаемую (0, строка) "" ожидаемую: установите ожидающую (spawn_id) "exp4" ожидаемую: установите ожидаемую (буфер) "" Но никакая другая комбинация подстановочных знаков, литерала или регулярного выражения, кажется, не работает Я смотрел видео и видел скриншоты. Из того, что я могу сказать, следует ожидать, что каждый символ должен повторяться до тех пор, пока не будет найдено совпадение, но он буквально просто останавливается на "", останавливается и переходит к следующей строке. Я уверен, что делаю что-то явно заведомо неправильное, если команда Expect не работает в Expect, но я просто не знаю, что именно. Это как если бы он не мог прочитать любой вывод терминала, но команды отправки работают отлично, поэтому я знаю, что он подключен. В какой бы терминальной программе я не работал (telnet, plink, netcat и т. Д.), Все имеют одну и ту же проблему. Expect действительно кажется удивительным инструментом автоматизации, поэтому я буду очень признателен за любые предложения, которые могут помочь мне преодолеть это. Я полностью ожидаю, что почувствую себя глупо после получения ответа.

1 ответ

Решение

Вероятно, это связано с известными проблемами с Expect в более поздних версиях Windows, которые, к сожалению, плохо документированы. Expect может работать на Win7 или Win8, вероятно, не на Win10. Как правило, он будет работать лучше на 32-битной Windows, чем на 64-битной Windows.

Другие вопросы по тегам