将批处理(bat)脚本转换为可执行(exe)文件

当你开始着手时,批处理文件和可执行文件的工作方式基本相同。两者都只是Windows execute的一组指令和逻辑。那么,如果批处理文件的工作原理基本相同,为什么要将它们转换为可执行文件呢?以下是一些原因:...

当你开始着手时,批处理文件和可执行文件的工作方式基本相同。两者都只是Windows execute的一组指令和逻辑。那么,如果批处理文件的工作原理基本相同,为什么要将它们转换为可执行文件呢?以下是一些原因:

  • 可移植性–您可以在批处理文件所依赖的EXE文件中包含其他工具。
  • Protection–EXE为源脚本提供保护,以确保它不会被无意中修改。
  • 方便–可执行文件可以固定到Windows开始菜单和/或Windows 7任务栏。

使用下面的脚本,您可以轻松地从批处理文件中构建自己的可执行文件,并提供所需的嵌入式工具。

配置

这个脚本利用一个7-Zip高级SFX(自解压器)将批处理文件与任何包含的工具捆绑并执行。因此,您需要下载(最后提供的链接)这些文件并将其解压缩到单个目录中。

下载完所有内容后,将脚本中的“PathTo7Zip”变量设置为下载这些文件的位置。

剧本

@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

结论

需要注意的是,虽然生成的文件与源BAT文件运行完全相同,但这并不是真正的批处理到可执行文件的转换。结果文件是一个EXE,但是它是用于自解压安装程序的。执行生成的EXE文件时,过程如下:

  1. EXE文件的内容被提取到temp目录。
  2. 读取脚本生成的配置文件。
  3. EXE文件中包含的批处理文件将在新的命令窗口中执行。
  4. 完成后,临时文件将被删除。

在WindowsVista和新操作系统上,运行脚本后,您可能会看到以下消息框。选择“This program installed correctly”(此程序已正确安装)后,此文件的消息框将不再显示。

将批处理(bat)脚本转换为可执行(exe)文件

因为EXE文件在一个新窗口中启动,所以记录输出的典型方式(使用'>'字符)将无法按预期工作。为了记录输出,您需要在源脚本中以本机方式处理这个问题。

尽管有这些小小的不便,但能够将批处理文件转换为可执行文件确实很方便。

链接

从Sysadmin Geek下载来自BAT脚本的Make EXE

下载7-Zip命令行工具

下载7-Zip高级7zSD SFX

  • 发表于 2021-04-13 07:17
  • 阅读 ( 163 )
  • 分类:互联网

你可能感兴趣的文章

如何使用applescript将bash脚本转换为可单击的应用程序

假设你是一个bash脚本向导,喜欢为不太懂技术的朋友和家人自动化任务。即使你给了他们一个脚本,完全解决了他们的问题,他们可能仍然担心自己使用终端。在这种情况下,您不妨手动为它们执行所有操作。 ...

  • 发布于 2021-03-21 09:39
  • 阅读 ( 249 )

如何通过五个简单步骤创建批处理(bat)文件

要创建批处理文件吗?这很简单。 ...

  • 发布于 2021-03-23 08:09
  • 阅读 ( 250 )

如何在vmware中的预分配磁盘和可扩展磁盘之间进行转换

...分配”磁盘。如果以后要压缩磁盘,则需要将其从预分配转换为可增长。或者,您可能希望将磁盘从可增长转换为预分配,以获得最佳性能。 相关:初学者极客:如何创建和使用虚拟机 只能在VMware Fusion或VMware Workstation中执行此...

  • 发布于 2021-04-07 13:19
  • 阅读 ( 200 )

如何用google的工厂图片手动更新nexus播放器

...flippin日志!),那你就可以走了。 偶尔,闪光-全部.bat脚本不能正常工作。我的意思是它根本不起作用。如果发生这种情况,你必须手动刷新图像。只需点击这个指南,然后向下滚动到“如果脚本不起作用怎么办”部分。那应...

  • 发布于 2021-04-09 07:30
  • 阅读 ( 141 )

如何在windows上编写批处理脚本

...如何使用命令提示符吗?如果你这样做了,你可以写一个批处理文件。在最简单的形式中,批处理文件(或批处理脚本)是双击文件时执行的多个命令的列表。批处理文件可以一直返回到DOS,但仍然适用于现代版本的Windows。 Powe...

  • 发布于 2021-04-09 10:18
  • 阅读 ( 199 )

如何配置windows以更轻松地使用powershell脚本

...是一种命令shell和脚本语言,旨在取代Windows系统上的CMD和批处理脚本。因此,PowerShell脚本几乎可以配置为执行任何可以从命令行手动执行的操作。这相当于使您的系统上几乎任何可能的更改,直到您的用户帐户上的限制。因此...

  • 发布于 2021-04-11 03:20
  • 阅读 ( 231 )

如何使用批处理文件使powershell脚本更易于运行

由于几个主要与安全相关的原因,PowerShell脚本不像批处理脚本那样易于移植和使用。但是,我们可以将批处理脚本与PowerShell脚本捆绑在一起,以解决这些问题。在这里,我们将向您展示一些问题领域,以及如何构建批处理脚本...

  • 发布于 2021-04-11 03:30
  • 阅读 ( 294 )

在windows上有50多个潜在危险的文件扩展名

...安装了Java运行时,.JAR文件将作为程序运行。 脚本 .BAT–批处理文件。包含打开计算机时将在计算机上运行的命令列表。最初由MS-DOS使用。 .CMD–批处理文件。与.BAT类似,但此文件扩展名是在WindowsNT中引入的。 .VB、.VBS–VBScript...

  • 发布于 2021-04-12 02:19
  • 阅读 ( 187 )

我可以在没有可见命令提示符的情况下运行windows批处理文件吗?

Batch files are a handy way to execute a series of commands in Windows, but is there anyway to run them invisibly in the background? Read on find out how. 今天的问答环节是由SuperUser提供的,SuperUser是Stack Exchange的一个分支,是一个由社区驱动的问答网站分组。 ...

  • 发布于 2021-04-12 03:23
  • 阅读 ( 206 )

如何在usb驱动器上创建程序的快捷方式

...于Windows不支持快捷方式中的相对路径,我们将通过创建批处理(.bat)文件并将其转换为可执行(.exe)文件,向您展示如何在USB驱动器的根目录上创建“快捷方式”。 要创建批处理文件,请打开文本编辑器(如记事本),然后...

  • 发布于 2021-04-12 12:45
  • 阅读 ( 161 )
lwv489
lwv489

0 篇文章

相关推荐