Ruby - вызов команд и взаимодействие с оболочкой в ​​среде Windows - PullRequest
0 голосов
/ 17 апреля 2019

Я запускаю файл .exe в командной строке из сценария Ruby, который запрашивает у пользователя ответ Да / Нет. Я хотел бы знать, как пользователь может взаимодействовать с ним в среде Windows.

Я перепробовал все возможные варианты: system, backticks, %x(), Open3, Open4 ... и ни один из них не работает.

Некоторые сообщения ( [1] , [2] ) решают проблему с помощью PTY, но, насколько мне известно, реализация модуля PTY в Windows отсутствует. Любая другая идея?

1 Ответ

1 голос
/ 26 апреля 2019

Кажется, что это работает и под Windows

pipe = IO.popen('your.exe', 'w+', :err => [:child, :out])
@pipe.each_line do |line|
  if /pattern matching question/ =~ line
    break
  end
end
pipe.puts('Yes')
# another test can be here
pipe.close

Мудро использовать с https://ruby -doc.com / stdlib / libdoc / timeout / rdoc / Timeout.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...