2011-08-02 76 views
1

我需要关闭使用 system("start cmd.exe")如何在Ruby中关闭命令提示符窗口?

我不能使用“退出”命令,因为在命令提示符下运行一些批处理文件,我在我的Ruby脚本已经打开命令提示符窗口,我需要终止窗口并关闭命令提示符。

请帮我关闭窗口。

回答

2

我会做这样的事情:

cmdprompt = Process.spawn 'start cmd.exe' # open prompt 
Process.kill 9, cmdprompt     # close it 

不知道它会为Windows上工作,虽然。

有宝石win32-process提供处理Windows的外部流程的能力,试试这个:

require 'rubygems' 
require 'win32/process' 
cmdprompt = Process.create(:app_name => 'cmd') # open 
Process.kill 9, cmdprompt.process_id    # close 

我没有能力进行测试,但认为它建议立即进行删除工作。

+0

没有它在windows下不能工作,请问你能否给我建议一些其他的方法 – wani

+0

它仍然不起作用,脚本在'Process.kill 9,cmdprompt' C:\ Documents and Settings \ xsat314 \ Desktop> (eval):3:在'call'中:无法将Struct :: ProcessInfo转换为整数(TypeError) \t from(eval):3:in'OpenProcess' \t from C:/ Ruby/lib/ruby​​/gems/1.8 /宝石/ Win32的过程0.5.3/LIB /的Win32/process.rb:143:在'杀”选自C \t:/Ruby/lib/ruby/gems/1.8/gems/win32-process-0.5。 3/LIB /的Win32/process.rb:132:在'每个” \t从C:/Ruby/lib/ruby/gems/1.8/gems/win32-process-0.5.3/lib/win32/process.rb: 132:在'杀” – wani

+0

@wani:尝试更换' Process.kill 9,cmdprompt'与'Process.kill 9,cmdprompt.process_id'。 –

相关问题