跟随这个 指南 的步骤,我正在尝试将bat转换为exe,而不安装任何新软件,比如 Bat to Exe Converter。 我使用此方法的原因是因为我们工作场所的所有计算机都已安装了7zip,并且可以使用它,但是我不被允许使用未在主服务器上存在的外部软件来使脚本在公司的任何计算机上兼容。
我有以下的 TEST.bat:
ECHO This is a Test bat to exe
pause
以及 config.txt 文件:
;!@Install@!UTF-8!
RunProgram="TEST.bat"
;!@InstallEnd@!
然后我在另一个.bat文件中调用以下命令行:
COPY /B "%PathTo7Zip%\7zCon.sfx" + %Config% + %Source7ZFile% %OutputFile%
%PathTo7Zip%
是 7zCon.sfx 的目录。
%Config%
是上面的 config.txt 文件。
%Source7ZFile%
是我的 .7z 压缩包。
而 %OutputFile%
是我的输出TEST.exe文件,根据指南作者的说法,当我调用它时应该运行bat文件。
然而,调用 TEST.exe
会触发解压缩 .7z 压缩包(这是预期的),然后退出而不运行 TEST.bat。
然而,作者解释道:
结论:
需要注意的是,虽然生成的文件与源BAT文件完全相同,但这并不是真正的批处理转可执行文件。生成的文件是一个EXE,但它旨在用于自解压安装程序。当您执行生成的EXE文件时,过程类似于以下步骤:
- 将EXE文件的内容提取到临时目录中。
- 读取脚本生成的配置文件。
- 在新的命令窗口中执行包含在EXE文件中的批处理文件。
- 完成后,删除临时文件。