如何将 Windows 批处理脚本转换为 .exe?

如何将 Windows 批处理脚本转换为 .exe?

我有一个相当简单的批处理脚本,我想使用我花哨的游戏键盘上的宏来执行它。但是,SteelSeries Engine 仅支持使用宏按钮打开 .exe 文件。有没有办法将脚本转换为简单的可执行文件?

答案1

是的,确实如此。它并不漂亮,但很干净(事后无需清理),而且它实际上内置于您的系统中!

在您的C:\Windows\System32\文件夹中,有一个名为 的文件iexpress.exe

  • 右键单击它Run as administrator
  • 创建一个新的 SED 并选择“提取文件并运行安装命令”。
  • 添加所需的脚本,并确保在下一个屏幕上将安装程序设置为cmd /c [your_script.bat][your_script.bat] 是您要执行的脚本文件。如果您不这样做,Windows 将尝试使用 Command.com(命令提示符的旧版本),该版本已经很久没有使用了。
  • 选择首选项(您可能需要选择“使用包内的长文件名存储文件”),设置输出路径(到您要创建的.exe 文件),然后选择“不重新启动”。
  • 单击下一步,您将获得您的.exe!

需要注意的是,该文件实际上仅作为脚本的包装器,而脚本本身实际上是在执行时创建的临时文件夹中执行(之后被删除),因此请确保不要使用任何相对路径。

答案2

这里有两个我强烈推荐的免费程序,用于从批处理文件创建 EXE

1 - Bat 到 Exe 转换器

2 - 蝙蝠 2 Exe

您可以使用带有简单 GUI 的两个程序。

Bat To Exe Converter还支持 CLI 命令(\?标记以获取帮助)。文档中的基本示例:

Bat_To_Exe_Converter.exe -bat mybatfile.bat -save myprogram.exe -icon myicon

答案3

如果您的键盘软件支持将参数传递给可执行文件(这并非不可能),您就不必这样做。

cmd.exe /c <path to batchfile>

会运行批处理文件,并为您提供一个有效的可执行文件,供键盘软件命名。无需转换意味着您始终可以轻松更改您的批处理文件,而无需执行其他步骤。

答案4

不同版本的 Windows 对相同的批处理文件命令有不同的影响,并且某些命令仅限于某些 Windows 系统,例如。findstrshutdown
顺便说一句,Win 10 CMD 不允许在SETLOCAL命令行上更改。批处理文件可以。

请参阅此链接以了解重新启动不同版本 Windows 的不同命令: https://www.computerhope.com/issues/ch000321.htm

因此,如果您在 Win 98 上编译脚本,并在 Win 8.1 上运行,您将得到意外结果,或者脚本甚至可能无法运行。请参阅此处的命令列表: https://www.ionos.com/digitalguide/server/know-how/windows-cmd-commands/

因此,每个版本的 Windows 都需要不同的编译器,最好是能够生成二进制代码(通用),这些代码可以在尽可能多的 CPU 芯片上运行,并且具有相同的指令集。大多数程序提供的解决方法是将脚本包装在 exe 文件中,该文件会在打开/运行时解包并执行脚本,例如 Bat_To_Exe_Converter、Bat2Exe、BatchCompiler 或 Winzip: https://support.winzip.com/hc/en-us/articles/115011794948-What-is-a-Self-Extracting-Zip-File-

为了解决这个可移植性问题,虚拟机变得越来越流行,因此 Java 和相关脚本也应运而生。

然而,这仍然是解释代码,速度不如编译代码快。即使是虚拟机中的字节码(中间代码)也需要编译,即使它是(JIT): https://aboullaite.me/understanding-jit-compiler-just-in-time-compiler/

简而言之,您可以获得一个包含可由命令处理器解释的脚本的 exe 文件,但它不是本机可执行文件,这意味着如果没有 Windows 操作系统的主机,它就无法运行。

相关内容