首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Ocra捆绑文件夹

如何使用Ocra捆绑文件夹
EN

Stack Overflow用户
提问于 2014-05-16 01:53:08
回答 1查看 508关注 0票数 2

我只想知道以下情况是否可能:

我创建ruby可执行文件的目标是能够为我的ruby脚本添加一些可移植性。该脚本所做的是收集放在某个目录中的一些.txt文件,然后对它们进行处理,并将.txt结果输出到另一个文件目录中。

没有ocra,这与我的脚本工作得很好,因为我只是让我的脚本搜索位于其当前工作目录中的某个文件夹名称,并处理其中的所有.txt并将其结果输出到另一个特定的文件夹中。

我的问题是,我可以让ocra创建的最终.exe文件做同样的事情吗?

当前的问题是,当我运行以下命令时:

代码语言:javascript
复制
ocra myscript.rb use_this_folder/

然后将生成的"myscript.exe“移动到另一个"use_this_folder”副本所在的位置,它无法识别该文件夹。

在我的ruby脚本的顶部,我放置了:

代码语言:javascript
复制
$:.unshift File.dirname($0)
Dir.chdir File.dirname($0)

希望这一切都有意义。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2016-03-10 05:48:28

如果我理解正确的话,你的程序很难找到你的文本文件所在的目录。我猜你的输入和输出文件夹在你想要运行的exe文件的相对文件夹中。Dir.chdir File.dirname($0)为您提供临时目录中的exe文件的临时版本。您的程序需要知道原始exe的位置。您的可执行文件所在位置存储在此变量中:ENV["OCRA_EXECUTABLE"]。使用此命令将工作目录更改为exe所在的目录:

代码语言:javascript
复制
Dir.chdir File.dirname(ENV["OCRA_EXECUTABLE"]) if ENV["OCRA_EXECUTABLE"]

例如,此脚本的exe位于另一个驱动器根目录下名为"MyProgram“的文件夹中:

代码语言:javascript
复制
Dir.chdir File.dirname($0)
p Dir.pwd
Dir.chdir File.dirname(ENV["OCRA_EXECUTABLE"]) if ENV["OCRA_EXECUTABLE"]
p Dir.pwd

由exe文件运行时输出以下内容:

代码语言:javascript
复制
"C:/Users/User/AppData/Local/Temp/ocr7293.tmp/src"
"D:/MyProgram"

if ENV["OCRA_EXECUTABLE"]是一段代码,它询问如果目录是ocra exe文件,是否要更改目录。如果没有if语句,环境变量为nil,Dir.chdir将抛出异常,因为它不能将目录更改为nil。

时间有点短,但希望这能有所帮助。祝好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23685376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档