-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate_selfextract_installer.bat
More file actions
221 lines (214 loc) · 13.2 KB
/
create_selfextract_installer.bat
File metadata and controls
221 lines (214 loc) · 13.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
@echo off
chcp 65001 >nul
echo ========================================
echo Windows Update管理工具 - 自解压安装程序制作
echo ========================================
echo.
echo 正在检查便携版文件...
if not exist "WindowsUpdateManager_Portable\WindowsUpdateManager.exe" (
echo ❌ 便携版文件不存在
echo 请先运行 create_portable.bat
pause
exit /b 1
)
echo ✅ 便携版文件存在
echo.
echo 正在创建安装脚本...
REM 创建安装脚本
echo @echo off > installer_temp.bat
echo chcp 65001 ^>nul >> installer_temp.bat
echo echo ======================================== >> installer_temp.bat
echo echo Windows Update管理工具 - 安装程序 >> installer_temp.bat
echo echo ======================================== >> installer_temp.bat
echo echo. >> installer_temp.bat
echo. >> installer_temp.bat
echo REM 检查管理员权限 >> installer_temp.bat
echo net session ^>nul 2^>^&1 >> installer_temp.bat
echo if %%errorLevel%% neq 0 ^( >> installer_temp.bat
echo echo ❌ 此程序需要管理员权限才能安装 >> installer_temp.bat
echo echo 请右键点击安装程序,选择"以管理员身份运行" >> installer_temp.bat
echo pause >> installer_temp.bat
echo exit /b 1 >> installer_temp.bat
echo ^) >> installer_temp.bat
echo. >> installer_temp.bat
echo REM 检查系统版本 >> installer_temp.bat
echo for /f "tokens=4-5 delims=. " %%%%i in ^('ver'^) do set VERSION=%%%%i.%%%%j >> installer_temp.bat
echo if "%%VERSION%%" lss "10.0" ^( >> installer_temp.bat
echo echo ❌ 此程序需要Windows 10或更高版本 >> installer_temp.bat
echo echo 当前系统版本不受支持 >> installer_temp.bat
echo pause >> installer_temp.bat
echo exit /b 1 >> installer_temp.bat
echo ^) >> installer_temp.bat
echo. >> installer_temp.bat
echo echo ✅ 权限和系统检查通过 >> installer_temp.bat
echo echo. >> installer_temp.bat
echo. >> installer_temp.bat
echo REM 获取系统盘符 >> installer_temp.bat
echo for /f "tokens=2 delims==" %%%%a in ^('wmic os get SystemDrive /value'^) do set SYSTEMDRIVE=%%%%a >> installer_temp.bat
echo set "INSTALL_DIR=%%SYSTEMDRIVE%%\Program Files\WindowsUpdateManager" >> installer_temp.bat
echo. >> installer_temp.bat
echo echo 安装目录:%%INSTALL_DIR%% >> installer_temp.bat
echo echo. >> installer_temp.bat
echo. >> installer_temp.bat
echo REM 检查是否已安装 >> installer_temp.bat
echo if exist "%%INSTALL_DIR%%\WindowsUpdateManager.exe" ^( >> installer_temp.bat
echo echo 检测到已安装的版本 >> installer_temp.bat
echo set /p "CHOICE=是否要覆盖安装?(Y/N): " >> installer_temp.bat
echo if /i "%%CHOICE%%" neq "Y" ^( >> installer_temp.bat
echo echo 安装已取消 >> installer_temp.bat
echo pause >> installer_temp.bat
echo exit /b 0 >> installer_temp.bat
echo ^) >> installer_temp.bat
echo echo 正在停止现有程序... >> installer_temp.bat
echo taskkill /f /im WindowsUpdateManager.exe ^>nul 2^>^&1 >> installer_temp.bat
echo ^) >> installer_temp.bat
echo. >> installer_temp.bat
echo echo 正在创建安装目录... >> installer_temp.bat
echo if not exist "%%INSTALL_DIR%%" mkdir "%%INSTALL_DIR%%" >> installer_temp.bat
echo. >> installer_temp.bat
echo echo 正在解压程序文件... >> installer_temp.bat
echo echo 这可能需要几分钟时间,请耐心等待... >> installer_temp.bat
echo. >> installer_temp.bat
echo REM 解压文件到安装目录 >> installer_temp.bat
echo xcopy "%%~dp0WindowsUpdateManager_Portable\*" "%%INSTALL_DIR%%\" /E /I /H /Y ^>nul >> installer_temp.bat
echo. >> installer_temp.bat
echo if not exist "%%INSTALL_DIR%%\WindowsUpdateManager.exe" ^( >> installer_temp.bat
echo echo ❌ 安装失败,程序文件未正确复制 >> installer_temp.bat
echo pause >> installer_temp.bat
echo exit /b 1 >> installer_temp.bat
echo ^) >> installer_temp.bat
echo. >> installer_temp.bat
echo echo ✅ 程序文件安装完成 >> installer_temp.bat
echo. >> installer_temp.bat
echo REM 创建桌面快捷方式 >> installer_temp.bat
echo set /p "CREATE_DESKTOP=是否创建桌面快捷方式?(Y/N): " >> installer_temp.bat
echo if /i "%%CREATE_DESKTOP%%" equ "Y" ^( >> installer_temp.bat
echo echo 正在创建桌面快捷方式... >> installer_temp.bat
echo powershell -Command "$WshShell = New-Object -comObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut('%%USERPROFILE%%\Desktop\Windows Update管理工具.lnk'); $Shortcut.TargetPath = '%%INSTALL_DIR%%\WindowsUpdateManager.exe'; $Shortcut.Save()" >> installer_temp.bat
echo ^) >> installer_temp.bat
echo. >> installer_temp.bat
echo REM 创建开始菜单快捷方式 >> installer_temp.bat
echo set /p "CREATE_STARTMENU=是否创建开始菜单快捷方式?(Y/N): " >> installer_temp.bat
echo if /i "%%CREATE_STARTMENU%%" equ "Y" ^( >> installer_temp.bat
echo echo 正在创建开始菜单快捷方式... >> installer_temp.bat
echo if not exist "%%APPDATA%%\Microsoft\Windows\Start Menu\Programs\Windows Update管理工具" mkdir "%%APPDATA%%\Microsoft\Windows\Start Menu\Programs\Windows Update管理工具" >> installer_temp.bat
echo powershell -Command "$WshShell = New-Object -comObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut('%%APPDATA%%\Microsoft\Windows\Start Menu\Programs\Windows Update管理工具\Windows Update管理工具.lnk'); $Shortcut.TargetPath = '%%INSTALL_DIR%%\WindowsUpdateManager.exe'; $Shortcut.Save()" >> installer_temp.bat
echo powershell -Command "$WshShell = New-Object -comObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut('%%APPDATA%%\Microsoft\Windows\Start Menu\Programs\Windows Update管理工具\使用说明.lnk'); $Shortcut.TargetPath = '%%INSTALL_DIR%%\USER_GUIDE.md'; $Shortcut.Save()" >> installer_temp.bat
echo ^) >> installer_temp.bat
echo. >> installer_temp.bat
echo REM 设置开机自启动 >> installer_temp.bat
echo set /p "CREATE_AUTOSTART=是否设置开机自启动?(Y/N): " >> installer_temp.bat
echo if /i "%%CREATE_AUTOSTART%%" equ "Y" ^( >> installer_temp.bat
echo echo 正在设置开机自启动... >> installer_temp.bat
echo schtasks /create /tn "WindowsUpdateManager" /tr "%%INSTALL_DIR%%\WindowsUpdateManager.exe" /sc onlogon /ru SYSTEM /f ^>nul 2^>^&1 >> installer_temp.bat
echo if %%errorLevel%% equ 0 ^( >> installer_temp.bat
echo echo ✅ 开机自启动设置成功 >> installer_temp.bat
echo ^) else ^( >> installer_temp.bat
echo echo ⚠️ 开机自启动设置失败,可在程序中手动设置 >> installer_temp.bat
echo ^) >> installer_temp.bat
echo ^) >> installer_temp.bat
echo. >> installer_temp.bat
echo REM 添加到程序列表 >> installer_temp.bat
echo echo 正在注册程序信息... >> installer_temp.bat
echo reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WindowsUpdateManager" /v "DisplayName" /t REG_SZ /d "Windows Update管理工具" /f ^>nul >> installer_temp.bat
echo reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WindowsUpdateManager" /v "DisplayVersion" /t REG_SZ /d "1.0.0" /f ^>nul >> installer_temp.bat
echo reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WindowsUpdateManager" /v "Publisher" /t REG_SZ /d "Windows Update Manager Team" /f ^>nul >> installer_temp.bat
echo reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WindowsUpdateManager" /v "InstallLocation" /t REG_SZ /d "%%INSTALL_DIR%%" /f ^>nul >> installer_temp.bat
echo reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WindowsUpdateManager" /v "UninstallString" /t REG_SZ /d "%%INSTALL_DIR%%\uninstall.bat" /f ^>nul >> installer_temp.bat
echo. >> installer_temp.bat
echo REM 创建卸载脚本 >> installer_temp.bat
echo echo @echo off ^> "%%INSTALL_DIR%%\uninstall.bat" >> installer_temp.bat
echo echo chcp 65001 ^^^>nul ^^>> "%%INSTALL_DIR%%\uninstall.bat" >> installer_temp.bat
echo echo echo 正在卸载Windows Update管理工具... ^^>> "%%INSTALL_DIR%%\uninstall.bat" >> installer_temp.bat
echo echo taskkill /f /im WindowsUpdateManager.exe ^^^>nul 2^^^>^^^&1 ^^>> "%%INSTALL_DIR%%\uninstall.bat" >> installer_temp.bat
echo echo schtasks /delete /tn "WindowsUpdateManager" /f ^^^>nul 2^^^>^^^&1 ^^>> "%%INSTALL_DIR%%\uninstall.bat" >> installer_temp.bat
echo echo del "%%%%USERPROFILE%%%%\Desktop\Windows Update管理工具.lnk" ^^^>nul 2^^^>^^^&1 ^^>> "%%INSTALL_DIR%%\uninstall.bat" >> installer_temp.bat
echo echo rmdir /s /q "%%%%APPDATA%%%%\Microsoft\Windows\Start Menu\Programs\Windows Update管理工具" ^^^>nul 2^^^>^^^&1 ^^>> "%%INSTALL_DIR%%\uninstall.bat" >> installer_temp.bat
echo echo reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WindowsUpdateManager" /f ^^^>nul 2^^^>^^^&1 ^^>> "%%INSTALL_DIR%%\uninstall.bat" >> installer_temp.bat
echo echo rmdir /s /q "%%INSTALL_DIR%%" ^^>> "%%INSTALL_DIR%%\uninstall.bat" >> installer_temp.bat
echo echo echo 卸载完成 ^^>> "%%INSTALL_DIR%%\uninstall.bat" >> installer_temp.bat
echo echo pause ^^>> "%%INSTALL_DIR%%\uninstall.bat" >> installer_temp.bat
echo. >> installer_temp.bat
echo echo. >> installer_temp.bat
echo echo ======================================== >> installer_temp.bat
echo echo 🎉 安装完成! >> installer_temp.bat
echo echo ======================================== >> installer_temp.bat
echo echo. >> installer_temp.bat
echo echo 安装位置:%%INSTALL_DIR%% >> installer_temp.bat
echo echo. >> installer_temp.bat
echo echo 🚀 启动程序: >> installer_temp.bat
echo echo 双击桌面快捷方式或从开始菜单启动 >> installer_temp.bat
echo echo 或直接运行:%%INSTALL_DIR%%\WindowsUpdateManager.exe >> installer_temp.bat
echo echo. >> installer_temp.bat
echo echo 📚 使用说明: >> installer_temp.bat
echo echo 查看:%%INSTALL_DIR%%\USER_GUIDE.md >> installer_temp.bat
echo echo. >> installer_temp.bat
echo echo 🗑️ 卸载程序: >> installer_temp.bat
echo echo 运行:%%INSTALL_DIR%%\uninstall.bat >> installer_temp.bat
echo echo 或通过"程序和功能"卸载 >> installer_temp.bat
echo echo. >> installer_temp.bat
echo set /p "RUN_NOW=是否立即运行程序?(Y/N): " >> installer_temp.bat
echo if /i "%%RUN_NOW%%" equ "Y" ^( >> installer_temp.bat
echo start "" "%%INSTALL_DIR%%\WindowsUpdateManager.exe" >> installer_temp.bat
echo ^) >> installer_temp.bat
echo. >> installer_temp.bat
echo echo 感谢使用Windows Update管理工具! >> installer_temp.bat
echo pause >> installer_temp.bat
echo 正在创建自解压安装程序...
REM 创建自解压批处理文件
echo @echo off > WindowsUpdateManager_Installer.bat
echo chcp 65001 ^>nul >> WindowsUpdateManager_Installer.bat
echo setlocal >> WindowsUpdateManager_Installer.bat
echo. >> WindowsUpdateManager_Installer.bat
echo REM 创建临时目录 >> WindowsUpdateManager_Installer.bat
echo set "TEMP_DIR=%%TEMP%%\WindowsUpdateManager_Install_%%RANDOM%%" >> WindowsUpdateManager_Installer.bat
echo mkdir "%%TEMP_DIR%%" >> WindowsUpdateManager_Installer.bat
echo. >> WindowsUpdateManager_Installer.bat
echo REM 解压文件到临时目录 >> WindowsUpdateManager_Installer.bat
echo echo 正在准备安装文件... >> WindowsUpdateManager_Installer.bat
echo. >> WindowsUpdateManager_Installer.bat
echo REM 这里需要将便携版文件嵌入到批处理中 >> WindowsUpdateManager_Installer.bat
echo REM 由于批处理限制,我们使用外部文件方式 >> WindowsUpdateManager_Installer.bat
echo. >> WindowsUpdateManager_Installer.bat
echo if not exist "WindowsUpdateManager_Portable" ^( >> WindowsUpdateManager_Installer.bat
echo echo ❌ 安装文件不完整,请重新下载安装程序 >> WindowsUpdateManager_Installer.bat
echo pause >> WindowsUpdateManager_Installer.bat
echo exit /b 1 >> WindowsUpdateManager_Installer.bat
echo ^) >> WindowsUpdateManager_Installer.bat
echo. >> WindowsUpdateManager_Installer.bat
echo REM 复制便携版到临时目录 >> WindowsUpdateManager_Installer.bat
echo xcopy "WindowsUpdateManager_Portable" "%%TEMP_DIR%%\WindowsUpdateManager_Portable\" /E /I /H /Y ^>nul >> WindowsUpdateManager_Installer.bat
echo. >> WindowsUpdateManager_Installer.bat
echo REM 复制安装脚本 >> WindowsUpdateManager_Installer.bat
echo copy "installer_temp.bat" "%%TEMP_DIR%%\installer_temp.bat" ^>nul >> WindowsUpdateManager_Installer.bat
echo. >> WindowsUpdateManager_Installer.bat
echo REM 运行安装脚本 >> WindowsUpdateManager_Installer.bat
echo cd /d "%%TEMP_DIR%%" >> WindowsUpdateManager_Installer.bat
echo call installer_temp.bat >> WindowsUpdateManager_Installer.bat
echo. >> WindowsUpdateManager_Installer.bat
echo REM 清理临时文件 >> WindowsUpdateManager_Installer.bat
echo cd /d "%%~dp0" >> WindowsUpdateManager_Installer.bat
echo rmdir /s /q "%%TEMP_DIR%%" ^>nul 2^>^&1 >> WindowsUpdateManager_Installer.bat
echo.
echo ✅ 自解压安装程序创建完成!
echo.
echo 📁 生成的文件:
echo WindowsUpdateManager_Installer.bat - 安装程序
echo installer_temp.bat - 安装脚本
echo.
echo 📋 安装程序特性:
echo ✅ 需要管理员权限运行
echo ✅ 只能安装在系统盘
echo ✅ 支持Windows 10/11系统
echo ✅ 包含完整的卸载程序
echo ✅ 可选择创建快捷方式
echo ✅ 支持开机自启动设置
echo ✅ 自动注册到程序列表
echo.
echo 🧪 测试建议:
echo 1. 以管理员身份运行 WindowsUpdateManager_Installer.bat
echo 2. 按提示完成安装过程
echo 3. 验证程序功能正常
echo 4. 测试卸载功能
echo.
pause