【问题标题】:Ruby accept argument via drag and drop onto rb script [duplicate]Ruby通过拖放到rb脚本接受参数[重复]
【发布时间】:2011-03-24 09:35:03
【问题描述】:

可能重复:
Enable dropping a file onto a Ruby script

我希望打开 ruby​​ 并使用删除的文件作为参数。我运行 Win 7 Enterprise、Ruby 1.8.6 并尝试了无法安装的 RubyDragAndDrop.dll。有什么想法吗?

【问题讨论】:

  • @Andrew barber,如果您查看这两个问题,您应该意识到它们不是重复的,这里的问题是特定窗口,我的答案是 Windows 答案,另一个问题是跨平台的,我发布了我的在那里回答作为参考。因此,我认为有必要这个答案问题/答案来修改 - 彼得刚刚编辑

标签: ruby windows-7 drag-and-drop


【解决方案1】:

另一种方法是创建一个批处理文件来处理拖放部分。如here 所见,当您将文件拖放到批处理文件中时,已删除文件的列表将作为空格分隔的列表存储在%* 中。一个简单地说 ruby yourscript.rb %* 的批处理文件应该获取这个文件列表并将其传递给您的脚本(您可以在其中使用 ARGS 数组访问参数)。

【讨论】:

  • 这样做的问题是,如果您从与包含 ruby​​ 文件的文件夹不同的文件夹中拖动文件,则会出现链接错误,因为它会尝试使用文件的工作目录运行脚本拖动,而不是文件运行。 IE。桌面上的文件file1 被拖到文件夹Folder1 中的bat 文件中。 bat 文件调用 Folder1 中的 ruby​​ 脚本。 pwd(从 bat 文件写入提示)是桌面,即使 bat 文件位于 Folder1 中。有没有办法让文件从 bat 文件的文件夹中运行?
  • 在启动 Ruby 脚本之前,将执行 cd 的行添加到包含 .bat 文件的文件夹(使用绝对路径)。
  • 这行得通,不过要小心;在我尝试使用 bat 文件之前,我尝试了一个 c++ 应用程序,它只调用了 system 并将 args 作为字符串传递。即使使用 cd,我也无法让它工作。我不知道这是否是用户错误,但蝙蝠与 cd 一起使用。谢谢。
猜你喜欢
  • 2011-03-12
  • 2012-04-11
  • 2013-04-10
  • 2016-08-03
  • 2015-11-26
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 2012-05-10
相关资源
最近更新 更多