【发布时间】:2011-08-05 15:59:58
【问题描述】:
红宝石 1.9.2 等待 1.8.1
我们从 cmd 提示符 (driver.rb) 启动我们的 ruby 脚本。 ruby 脚本然后执行以下行以执行 cmd 提示命令:
response = `choice /c 12 /n /m "1. Qual -- 2. Test"`
我希望提示窗口显示允许用户做出选择然后返回选择的选项。
命令执行时,不显示消息,但cmd窗口正在等待响应。
当我输入值(1或2)时,它返回字符串
(/c 12 /n /m "1. Qual -- 2. Test x)
x 是我选择的值。
当 ruby 脚本执行完毕后,我会在 cmd 窗口中看到提示。
当我们运行时,ruby 脚本的任何输出(例如 puts)都会在脚本结束后显示。
有没有办法在 ruby 运行时将输出转到 cmd 窗口,而不是等到运行结束或至少显示 cmd 提示符命令?
如果能在这件事上提供任何帮助,我将不胜感激。
【问题讨论】:
-
我没有这个问题。我将
(0..5).each { |i| puts i; sleep 1 }放在一个ruby 文件中,然后在Windows 7 的cmd中运行它,我每秒都会得到一个输出,而不是在运行结束时一次全部输出。 -
你为什么要全力以赴执行选择?您可以使用 get 完美地使用纯红宝石,使用 Highline gem 甚至更好:rubygems.org/gems/highline
-
如果您谈到您认为“选择”是答案的问题,也许会更容易为您提供帮助。为什么您希望某人在测试开始运行后选择 Qual 或 Test?有一些方法可以将参数传递给 ruby,或者大约一百万种其他方法可以在不在 dos 提示符下提问的情况下获得选项。
-
我在上面的代码中没有看到任何Watir,为什么这个有Watir标签?