Ruby - 在 Windows 环境中调用命令并与 shell 交互

Finfa811

我正在命令行中从 Ruby 脚本运行一个 .exe 文件,该脚本要求用户提供是/否响应。我想知道用户如何在 Windows 环境中与其交互。

我已经尝试了所有可能的选项:system、反引号、%x()、Open3、Open4...但它们都不起作用。

一些帖子([1][2])使用 PTY 解决了这个问题,但据我所知,在 Windows 中没有实现 PTY 模块。还有其他想法吗?

洛伊扎

似乎这也适用于 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一起使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章