Невозможно использовать Expect для взаимодействия с windows исполняемым файлом из WSL - PullRequest
2 голосов
/ 08 января 2020

Я пытаюсь автоматизировать некоторые взаимодействия с исполняемым файлом windows (я полагаю, что это сценарий python, который был упакован с py2exe или аналогичным), используя Expect из Windows Подсистема для Linux (V1 Debian). Если я вручную запускаю исполняемый файл в WSL, он печатает некоторый текст, который я хочу сопоставить в Expect. Однако, если я создаю его с Expect, вместо того, чтобы возвращать какой-либо вразумительный текст, он возвращает ^[[66;1R, что может быть похоже на какой-то код выхода ANSI для меня?

Это мой MWE:

#!/usr/bin/expect --
set timeout 10
spawn binary-to-automate.exe
exp_internal 1
expect "*Please enter*"
puts $expect_out(buffer)

, который возвращает

spawn ./binary-to-automate.exe

expect: does "" (spawn_id exp4) match glob pattern "*Please enter*"? no

expect: does "\u001b[6n" (spawn_id exp4) match glob pattern "*Please enter*"? no
^[[66;1Rexpect: timed out
can't read "expect_out(buffer)": no such variable
    while executing
"puts $expect_out(buffer)"
    (file "./test" line 7)

Использование фиктивного сценария оболочки вместо двоичного файла windows, который просто отображает текст, работает, как и ожидалось, любые предложения, где я мог бы go отсюда?

...