Ruby windows命令提示前一行

时间:2012-12-03 10:56:51

标签: ruby windows command-line

是否可以使用Ruby编辑已写入命令提示符的内容?

例如,假设我已经向STDOUT写了10行,我可以将光标移动到例如石灰5并覆盖该行吗?

感谢。

1 个答案:

答案 0 :(得分:2)

是的,您可以在Windows Vista,7甚至8以及某些第三方扩展命令解释程序(如4NT和Take Command)中使用上行键,编辑行并重新调用以前的命令执行该行。我不知道Ruby与此有什么关系。如果你想让控制台中的Ruby类型击键可以使用auto-it Active-X控件。

编辑:这是一个使用Autoit编辑控制台的示例,下载并首先安装它,然后运行以下脚本。为了确保脚本不与其他打开的控制台交互,我将mu cmd.exe复制到首先启动的cmd2.exe。

require 'win32ole' 

title = "C:\\Windows\\System32\\cmd2.exe"
STDOUT.sync = true 
ai = WIN32OLE.new("AutoItX3.Control") 
ai.winwait(title)
ai.WinActivate(title, "")
ai.Send "cls{ENTER}"
1.upto(4) do |i|
  ai.Send "line#{i}{ENTER}"
end
1.upto(4) do |i|
  ai.Send "{UP}"
  sleep 1
end
ai.Send "line one {ENTER}"