Board logo

标题: 让98补丁包自动安装的批处理如何写? [打印本页]

作者: 雨露     时间: 2006-8-12 21:19    标题: 让98补丁包自动安装的批处理如何写?

我下了中文版的Windows98 SE的全部补丁,可是一个一个安装太吃力了,记得XP的补丁可以通过批处理一次性的自动完成,98SE可以吗?
作者: namejm     时间: 2006-8-15 15:15
  不知道98的补丁文件名是啥模样,网上搜索了一通,发现了一段代码比较有用,修改之后,得到如下代码,不知道能不能在98下成功运行:
@echo off
goto begin

把本脚本放在补丁目录下直接运行
注意:补丁目录下的1 2 3 4文件夹将被全新创建,请保证这四个文件夹内没有重要资料
本脚本主体代码来源于网络,jm于2006-8-15进行了部分修改
号称for 98/ME/2000/XP/2003
只测试了XP和2003的系统

:begin
title 系统补丁自动安装程序
color 1f
md 1 2 3 4 >nul 2>nul
for %%i in (*.exe) do (
    (echo %%i|findstr "updfile">nul 2>nul && move %%i 1) || (
    echo %%i|findstr "_sfx_cab_exe_package">nul 2>nul && move %%i 2) || (
    echo %%i|findstr "update.exe">nul 2>nul && move %%i 3) || (
    echo %%i|findstr "_sfx_cab_exe_path">nul 2>nul && move %%i 4)
)
If not exist *.exe (goto auto_install) else (goto list)
:list
echo.
echo              ========================================================
echo.
for %%i in (*.exe) do echo                %%i 需要手动安装
echo.
echo              ========================================================
echo.
echo               当可自动安装的补丁安装完毕之后,请手动安装上述补丁
:auto_install
echo.
echo              ========================================================
echo.
echo               所有可自动安装的补丁已经被分别放在 目录 1 2 3 4 中。
echo.
echo                            按任意键继续...
pause>nul
cd /d 1
for %%i in (*.exe) do start /wait %%i /q
cd /d 2
for %%i in (*.exe) do start /wait %%i /passive /norestart /o /n
cd /d 3
for %%i in (*.exe) do start /wait %%i -n -o -z
cd /d 4
for %%i in (*.exe) do start /wait %%i /passive /norestart /o /n
[ Last edited by namejm on 2006-11-17 at 04:36 PM ]
作者: fastslz     时间: 2006-8-15 16:40
补充说明
Windows安装包都有几乎都有无人参与安装命令的包括.msi
*.exe /quiet /norestart /n
*.exe /quiet /passive /norestart /nobackup
/quiet          安静模式
/passive       无从参与模式
/norestart    安装完成后不重新启动
/nobackup   不备份卸载需要的文件

Xplode外挂方式安装比较通用的参数/q /o /n /z
作者: tinytiger     时间: 2006-10-3 09:39
正需要,好好学习一下。
作者: tinytiger     时间: 2006-10-7 04:18
我找到了更简洁的代码:
@echo off
goto begain

:begain
color 1f
FOR /R %%F IN (.\*.exe) DO @((@findstr _SFX_CAB_EXE_PATH "%%F" >nul && @start /wait %%F /Quiet /Norestart /Nobackup)|| @start /wait %%F )