御坂初琴
Articles133
Tags48
Categories12
【封装教程】BAT安装包部署代码大全

【封装教程】BAT安装包部署代码大全

在自制安装包的过程中,通常需要一些部署操作。实现这些部署操作有很多方法,比如 Inno 自带的一些工具,或者兮米安装包制作软件自带的一些工具。当然除此之外,你还可以使用脚本完成部署操作,通常可以使用的包括 vbs,bat 和 reg。初琴就喜欢拿 bat 写安装包部署程序。今天这篇教程将会为大家安装包部署操作中的常用代码。

0. 隐藏 BAT 运行时的窗口

1
2
3
4
5
::隐藏当前BAT运行的窗口
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin

或者新建一个 Install.vbs,内容是

1
CreateObject("WScript.Shell").Run "cmd /c install.bat",0

初琴常用的是第二种方法。

**1. 获取管理员权限
** 通常很多部署操作需要管理员权限。初琴找了很多获取管理员权限的代码,但是这个是最稳定的:

1
2
3
4
5
6
7
8
::获取管理员权限
>NUL 2>&1 REG.exe query "HKU\S-1-5-19" || (
ECHO SET UAC = CreateObject^("Shell.Application"^) > "%TEMP%\Getadmin.vbs"
ECHO UAC.ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\Getadmin.vbs"
"%TEMP%\Getadmin.vbs"
DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL
Exit /b
)

**2. 生成桌面快捷方式
** 生成桌面快捷方式的方法特别多,这里推荐其中三种最常见的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
::生成桌面快捷方式
mklink C:\Users\%username%\Desktop\快捷方式名 %~dp0应用软件名

::生成桌面快捷方式
set "exe=应用软件名"
set "lnk=快捷方式名"
mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\%lnk%.lnk""):b.TargetPath=""%~dp0%exe%"":b.WorkingDirectory=""%~dp0"":b.Save:close")

::生成桌面快捷方式
set "path=%~dp0应用程序名"
set "name=快捷方式名"
set m="%USERPROFILE%\桌面\%name%.url"
echo [InternetShortcut] >>%m%
echo URL="%path%" >>%m%
echo IconIndex=10 >>%m%
echo IconFile=C:\windows\system32\shell32.dll >>%m%

最推荐的还是其中第一种和第二种,比较稳定。第三种可以自定义图标。

**3. 创建文件关联
** 推荐一种最稳定的修改文件关联的方式:

1
2
3
::设置文件关联
assoc .后缀名=显示的文件类型
ftype 显示的文件类型="%~dp0打开的应用程序" %1

**4. 导入注册表
** 导入注册表可以直接用 regedit /s 命令

1
2
::导入注册表
regedit /s ./Install.reg

当然你也可以直接用 reg add 命令,但是需要手写注册表,比较麻烦。

**5. 安装字体
** 有三个方法:

1
2
3
4
5
6
7
8
9
10
::安装当前文件夹下字体
for /f %%a in ('dir *.ttf /s /b') do (
dir %windir%\fonts\%%a>nul 2>nul||(copy %%a %windir%\fonts>nul 2>nul&rundll32.exe gdi32.dll,AddFontResourceA %windir%\fonts\%%a)
)

::安装Fonts文件夹内字体
xcopy /y "Fonts\*.ttf" "%windir%\Fonts"

::安装Fonts文件夹内字体,需要额外写一个InstallFonts.vbs
start wscript "%~dp0Fonts\InstallFonts.vbs"

初琴常用的是方法 3,方法 2 在 Windows10 上不适用。

6. 启动一些补丁文件

1
2
::启动一些补丁文件
start /d "%~dp0文件名.exe"

7. 清理临时文件

1
2
3
4
::清理临时文件
del /f /a /s /q "%~dp0Fonts\InstallFonts.vbs"
del /f /a /s /q Install.vbs
del /f /a /s /q %

8. 注册当前文件夹下所有的 DLL

1
2
3
4
5
6
::注册当前文件夹下所有的DLL
for %%i in (*.dll *.ocx) do (
echo %% register is starting...
C:\Windows\System32\regsvr32.exe /s %%i /s
echo %%i register is finished...
)

如果不想注册其中部分 dll,就在这前面先 ren 修改它的名字,在注册后再修改回来。

有了以上这些常用的 bat 部署代码,你就能顺利的写出 BAT 封装部署文件,再配合我下篇文章要推荐的封包工具,就能完整的制作安装包啦!
当然你也可以把这些代码写入到 CQbat.dll 里,用 CQBAT 给自己的软件做一个绿化补丁,这样就可以拥有图形界面的绿化补丁啦!
快动手试试吧!

Author:御坂初琴
Link:https://ybcq.github.io/2019/04/19/%E3%80%90%E5%B0%81%E8%A3%85%E6%95%99%E7%A8%8B%E3%80%91BAT%E5%AE%89%E8%A3%85%E5%8C%85%E9%83%A8%E7%BD%B2%E4%BB%A3%E7%A0%81%E5%A4%A7%E5%85%A8/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×