2

我正在尝试使用 Ruby Rake 任务在同一系统进程中运行一些 Windows 命令行调用。我需要找到正确拨打电话的方法,而且这些电话不能相互依赖。

我知道'fork' 功能可以是一个解决方案,但它在 Windows 中不起作用。我尝试了其他功能,比如IO.POPENand Process.spawn我没有找到真正的解决方案。

我正在使用Ruby 1.9.3Windows XP。

task :CmdTest,:value do |t, args|
  value=args.value.to_s
  begin

    $cmd<<("set MYVAR=#{value}")
    $cmd<<("set MYVAR")
    $cmd<<("exit")
  rescue Exception => e
    puts e.message
  end
end

task :CmdTest3 do

  IO.popen("cmd", "r+") do |io|
    th = Thread.new(io) do |chan|
      chan.each {|line| puts line}
    end
    $cmd.each do |f|
      io.puts f
    end
    io.close_write
    th.join
  end
end
4

1 回答 1

1

看看win32utils,这就是你所追求的吗?

于 2013-02-14T10:16:11.520 回答