Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何将.bat和依赖项打包到exe中_Batch File_Exe - Fatal编程技术网

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

Batch file 如何将.bat和依赖项打包到exe中,batch-file,exe,Batch File,Exe,我有一个.bat文件,可以在它所在的目录中打开一些程序。它需要程序及其所有数据。现在是他们的一种方式,我把批处理文件和文件夹打包成一个exe文件,这样一次点击就可以运行,只需分发一个文件 请询问更多信息 此应用程序似乎可以满足您的需要 这可以使用7-Zip SFX文件完成。很久以前,我就编写了一个脚本,并开发了一个脚本来简化创建这些“自包含”包的过程: 例如,运行此命令: MakeExeFromBat.bat MyBatFile.bat SomeTool.exe SomeOtherBatFil

我有一个.bat文件,可以在它所在的目录中打开一些程序。它需要程序及其所有数据。现在是他们的一种方式,我把批处理文件和文件夹打包成一个exe文件,这样一次点击就可以运行,只需分发一个文件


请询问更多信息

此应用程序似乎可以满足您的需要


这可以使用7-Zip SFX文件完成。很久以前,我就编写了一个脚本,并开发了一个脚本来简化创建这些“自包含”包的过程:

例如,运行此命令:

MakeExeFromBat.bat MyBatFile.bat SomeTool.exe SomeOtherBatFile.bat
将生成
MyBatFile.exe
,其中既包含BAT文件(您的文件和依赖项),也包含可用于批处理文件调用的exe

运行时,流程如下所示:

  • MyBatFile.exe
    的内容被提取到临时目录中
  • MyBatFile.bat
    被执行并运行。传递的任何命令行参数都会发送到
    MyBatFile.bat
    ,以便您可以正常使用它们
  • 完成后,将清理临时目录
  • 由于该处理是由SFX完成的,因此需要提及一些关于此限制的重要注意事项(我不知道有什么工具或解决方法可以克服这些限制):

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

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

    当然,有,但在您可以让它做您想要的事情之前,请准备好一点学习曲线。此外,请查看。有一个。检查iexpress。它内置于每台windows机器上,并有一个UI,其中包含一些可以执行此操作的选项。