2011-08-02 112 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'。 –