如何将.bat和依赖项打包到exe中

时间:2014-12-05 12:55:48

标签: batch-file exe

我有一个.bat文件,可以在它所在的同一目录中打开一些程序。它需要程序及其所有数据。现在,我们可以将批处理文件和文件夹打包到exe中,这样它就可以一键运行,只需要分发一个文件。

请询问任何其他信息。

2 个答案:

答案 0 :(得分:1)

这可以使用7-Zip SFX文件完成。很久以前我创建了一个这样的写法,并开发了一个脚本来创建这些"自包含的#34;包容易:

http://www.howtogeek.com/50364/convert-a-batch-bat-script-to-an-executable-exe-file/

例如,运行此命令:

MakeExeFromBat.bat MyBatFile.bat SomeTool.exe SomeOtherBatFile.bat

会生成MyBatFile.exe,其中包含BAT文件(您的和依赖项)以及批处理文件可用于调用的EXE。

运行时,过程如下:

  1. MyBatFile.exe的内容被解压缩到临时目录。
  2. 执行并运行
  3. MyBatFile.bat。传递的任何命令行参数都会发送到MyBatFile.bat,因此您可以正常使用它们。
  4. 完成后,临时目录将被清除。
  5. 由于此处理是由SFX完成的,因此需要提及一些关于此限制的重要通知(我不知道可以克服这些限制的工具或解决方法):

    • 运行EXE文件后,它将在新的命令窗口中处理 - 而不是当前的窗口。这意味着您的脚本将不了解当前的cmd实例,除非您通过参数提供它们。
    • 在上述基础上,相对路径不起作用。例如,您将\Subdir作为参数传递给MyBatFile.exe(再次在新的cmd实例中打开),然后\Subdir将尝试解析为临时结构中的路径它被提取的地方。您可以通过始终提供完整路径名来解决此问题。

    但是,在大多数情况下,如果您不处理用户提供的文件处理,这些限制将无法发挥作用。

答案 1 :(得分:0)

这个应用程序似乎可以做你想要的。

https://sourceforge.net/projects/batch-compiler/