Ruby Rake タスクを使用して、同じシステム プロセスでいくつかの Windows コマンド ライン呼び出しを実行しようとしています。呼び出しを正しく行う方法を見つける必要があり、この呼び出しは互いに依存することはできません。
「フォーク」機能が解決策になることは知っていますが、Windows では機能しません。IO.POPEN
や
などの他の関数を試してみましProcess.spawn
たが、実際の解決策は見つかりませんでした。
私はRuby 1.9.3
Windows 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