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


24

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


2
重击还是批量?尽管目的如此相似,但它们却截然不同。
Frank Thomas

1
您也可以使用AutoIt或AutoHotKey。它们比Batch更强大,并且都包含生成独立.exes的编译器。
丹尼尔·B

是无需外部工具即可完成的操作
npocmaka

Answers:


23

是的,实际上。它不是很漂亮,但是很干净(此后无需清理),它实际上是系统内置的!

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

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

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


2
不幸的是,我们的企业AV注意到生成的可执行文件是“内阁自解压程序”,并将其标记为恶意活动。
kmote

@kmote我也是。他们之前曾问过我一次,因为它可能出现在报告中,并且我解释了这是什么,这次他们只是不加询问地删除了它。
零时

尼斯 谢谢man.This帮助我从BAT脚本创建了一个EXE文件,而我以前无法使用各种可用的在线工具(如Bat2Exe等)​​来做EXE,
Harsh Kanchina

12

我强烈建议您使用2个免费程序来创建EXE批处理文件

1-Bat to Exe转换器

2-Bat 2 Exe

您可以通过简单的GUI使用这两个程序。

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

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

Bat2Exec允许您添加我喜欢的管理员清单。
双关语

2
您还可以快速列出如何使用这些程序完成任务吗?在回答中提供额外的细节永远不会感到伤害:)
Ben N

Advanced Bat 2 Exe转换器是共享软件
djibe


2-Bat 2 Exe是否支持CLI?我看不到任何信息。
Ste

5

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

cmd.exe /c <path to batchfile>

将运行批处理文件,并为您提供有效的可执行文件来命名键盘软件。无需转换,意味着您可以随时轻松地对蝙蝠进行更改,而无需执行其他步骤。


4

我发现这个文章你如何使用分批素文字名为.bat转换为.exe文件,其中显示:

@ECHO OFF
ECHO Make EXE From BAT
ECHO Written by: Jason Faulkner
ECHO SysadminGeek.com
ECHO.
ECHO.

REM Usage:
REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...]
REM
REM Required Parameters:
REM  BatFileToConvert
REM      Source batch file to use to produce the output Exe file.
REM
REM Optional Parameters:
REM  IncludeFile
REM      Additional files to include in the Exe file.
REM      You can include external tools used by the batch file so they are available on the executing machine.

SETLOCAL

REM Configuration (no quotes needed):
SET PathTo7Zip=


REM ---- Do not modify anything below this line ----

SET OutputFile="%~n1.exe"
SET SourceFiles="%TEMP%MakeEXE_files.txt"
SET Config="%TEMP%MakeEXE_config.txt"
SET Source7ZFile="%Temp%MakeEXE.7z"

REM Remove existing files
IF EXIST %OutputFile% DEL %OutputFile%

REM Build source archive
ECHO "%~dpnx1" > %SourceFiles%
:AddInclude
IF {%2}=={} GOTO EndInclude
ECHO "%~dpnx2" >> %SourceFiles%
SHIFT /2
GOTO AddInclude
:EndInclude
"%PathTo7Zip%7za.exe" a %Source7ZFile% @%SourceFiles%

REM Build config file
ECHO ;!@Install@!UTF-8! > %Config%
ECHO RunProgram="%~nx1" >> %Config%
ECHO ;!@InstallEnd@! >> %Config%

REM Build EXE
COPY /B "%PathTo7Zip%7zsd.sfx" + %Config% + %Source7ZFile% %OutputFile%

REM Clean up
IF EXIST %SourceFiles% DEL %SourceFiles%
IF EXIST %Config% DEL %Config%
IF EXIST %Source7ZFile% DEL %Source7ZFile%

ENDLOCAL

重要下载:


是否可以使EXE回显到从其运行的同一命令行?(而不是打开新窗口)
Stevoisiak
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.