【发布时间】:2018-06-29 09:19:25
【问题描述】:
遵循与guide 相同的步骤。我正在尝试在不安装任何新软件(例如Bat to Exe Converter)的情况下从 bat 转换为 exe。我使用这种方法的原因是因为我工作场所中的所有机器都已经安装了 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 文件的内容被解压到 temp 目录。
- 读取脚本生成的配置文件。
- EXE 文件中包含的批处理文件以新的方式执行 命令窗口。
- 完成后,临时文件将被删除。
【问题讨论】:
-
问题是什么?也许你会想检查一下 - stackoverflow.com/questions/28174386/…
-
@npocmaka 问题是为什么蝙蝠没有执行?为什么缺少第 3 步?我试图更改 bat 文件,因为
pause可能无法正常工作并且我看不到输出。所以我在我的 bat 文件中添加了mkdir not_a_real_dir,即使这样,也没有添加新文件夹。 bat 文件根本没有执行,也许有人知道原因。 -
您的问题不符合您的要求!这个想法似乎使用了外部软件,一个 7zip 自解压模块。
-
@npocmaka 我查看了您的链接,似乎还有另一种方法可以在没有 7zip 的情况下执行此操作,谢谢您的帮助。以前我正在参考此页面How can I convert a Windows batch script to a .exe? 工作,该页面没有在您的链接中列出解决方案。
标签: windows batch-file 7zip