从Ruby脚本启动浏览器时转义URL&'s

时间:2011-09-02 17:14:20

标签: ruby

使用ruby 1.9.2我正在编写一个Windows脚本,它打算在包含许多参数的URL上启动浏览器。我尝试了各种启动浏览器进程的方法:   '开始#{url}`   system(“start#{url}”)   ...

我的网址包含许多参数,因此包含&'s。问题是,& s似乎是由shell解释的,我还没有弄清楚如何将它们转义为正确传递给浏览器。

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用system with several arguments

  

在子shell中执行命令命令是以下形式之一   [...]
  cmdname, arg1, ...:命令名和一个或多个参数(无shell)

这将完全跳过shell并绕过整个转义问题。试试这个:

system('start', url)

我不确定start如何与Windows一起使用,但如果它是一个单独的可执行文件,它应该有效。

答案 1 :(得分:0)

Launchy也是一个非常棒的宝石,允许您以跨平台的方式执行此操作(如果您想要超越Windows)。

示例:

require 'rubygems'
require 'launchy'
Launchy.open('http://www.google.com/search?&q=ruby')