[Ruby]调用外部程序
来源:互联网 发布:淘宝上买烟怎么搜 编辑:程序博客网 时间:2024/04/29 01:08
1、system方法。system后跟要执行的系统shell的命令字符串作为参数,此方法可以让系统中的程序在一个子shell中运行。是我们通过ruby脚本引导启动系统中外部程序的常规手法。
system "cmd /c del ./hello.txt"
system "calc"
system("d: && cd D:/opt/rails-app && ruby script/server")
2、exec方法,此方法同system方法有些相似,都是接受一个字符串格式的命令,但是区别还是比较明显的,以exec方法引导执行的程序启动的新进程会覆盖当前进程,而推出脚本。比如我们编写:
exec('dir')
puts 'Can show the message?' #这行代码将永远不会被执行的
3、利用``执行命令。Ruby包含了一种很有趣的执行外部程序的方式:就是通过将系统shell包含在符号``之间。这样shell在执行完毕后,如果能返回信息,则返回的信息可以被我们保存在一个变量中。比如我们想判断系统中是否运行着某个进程,然后kill掉它,就可以写:
show_p = `tasklist`
system('tskill IEXPLORE') if show_p.include? 'IEXPLORE'
在Windows XP中 tasklist命令可以得到系统的所有进程信息,我们把这条系统shell放在``中执行,然后赋值给了show_p对象,然后调用其include?方法来检测是否存在IEXPLORE进程(IE浏览器),如果有就关闭它。(代码确实很好读,是吧,像读简单的英文语句,这正是Ruby的魅力!)通过这两条语句,其实我们就可以管理系统中任何进程的执行了!
存在路径问题的情况,需要切换到需要的路径下调用。
获取当前工作路径
x = Dir.getwd
print_status( x )
切换路径至path
Dir.chdir("path")
- [Ruby]调用外部程序
- 程序调用外部程序
- Ruby 调用本地程序
- Ruby程序运行外部程序(一)
- Ruby程序运行外部程序(二)
- Ruby程序运行外部程序(三)
- java调用外部程序
- C# 调用外部程序
- Java调用外部程序
- c++ 调用外部程序
- C#调用外部程序
- C#调用外部程序
- VC 调用外部程序
- C#调用外部程序
- SAP 调用外部程序
- SAP 调用外部程序
- javascript调用外部程序
- VC调用外部程序
- 如何使用定时器
- 二三事,技术事。
- eclipse3.4开发RCP
- 2009.5.16
- 子类重写父类的方法时声明抛出异常不能比父类范围大(转自http://chenpingtai2008.javaeye.com/blog/246435)
- [Ruby]调用外部程序
- Tersafe.sys的Tricky
- FlowDocument in WPF
- 播放声音
- 用Interface来解决Application和Module之间的通信,减少Module和Application之间的耦合度
- 消息 前缀的含意
- SQL Server中临时表与表变量的区别
- mysql学习整理(一)
- C#操作注册表