你好我遇到了我需要在程序退出后运行命令的情况。
原因:
MyApp1.exe需要更新为新版本MyApp2.exe。因此,MyApp1.exe应该在我启动MyApp2.exe之前终止,否则inno setup将不允许我安装新版本,因为旧版本仍在运行。
File.open("MyApp2.exe", "wb") do |saved_file|
open("http://example.com/MyApp2.exe", "rb") do |read_file|
saved_file.write(read_file.read)
end
end
`start "" "MyApp2.exe"`
exit
现在start
命令在退出之前,因为我想启动新下载的MyApp2.exe,但我想首先退出然后启动安装程序。
请帮忙
答案 0 :(得分:1)
我认为可以使用Kernel::exec代替反引号或system
方法来实现。与其他shell调用命令不同,exec
用新进程替换当前正在运行的进程(即Ruby解释器)。
您的整个脚本将是
File.open("MyApp2.exe", "wb") do |saved_file|
open("http://example.com/MyApp2.exe", "rb") do |read_file|
saved_file.write(read_file.read)
end
end
exec 'start "" "MyApp2.exe"'
您无法继续exec
之后的任何语句,程序将在此时退出。