无忧启动论坛
标题:
也来发一个自动给win7pe集成驱动的批处理
[打印本页]
作者:
hhh333
时间:
2012-11-11 19:06
标题:
也来发一个自动给win7pe集成驱动的批处理
参照各位大侠的研究成果,也发一个所谓替换法巧妙添加驱动的批处理:
@Echo Off
REM 原创by chiannet,修改by TCLSHX、H3
setlocal EnableDelayedExpansion
COLOR 1F
Echo.
ECHO 本工具用来给W7PE增加驱动,各文件夹及文件意义如下:
ECHO w7pe文件夹----w7pe.wim之挂载目标
ECHO bot文件夹-----boot.wim之挂载目标
ECHO wim文件夹-----boot.wim w7pe.wim等WIM文件存放处
ECHO drv文件夹-----欲添加的驱动文件存放处
Echo.
ECHO 请按以上要求将WIM文件和驱动文件准备好(以上位于根或子文件夹均可)!
ECHO 本批处理必须要在安装了Windows AIK(KB3AIK_CN.ISO)的环境中运行!
Echo.
ECHO 如果已经作好上述准备工作,按任意键继续......
pause>nul
Echo.
ECHO 第1步:检查用于挂载的WIM文件......
Echo.
set nowim=0
If not Exist wim\W7PE.WIM set nowim=1 &&echo 没有Win7PE镜像文件w7pe.wim!
If not Exist wim\boot.wim set nowim=1 &&echo 没有Win7原版boot.wim镜像文件!
if not "%nowim%"=="0" pause&&goto end
Echo.
ECHO 第2步:挂载WIM镜像......
Echo.
If Exist w7pe RD w7pe /S /Q>NUL 2>NUL
If Exist bot RD bot /S /Q>NUL 2>NUL
md w7pe
md bot
Dism /Mount-Wim /WimFile:wim\W7PE.WIM /index:1 /MountDir:%CD%\w7pe
Dism /Mount-Wim /WimFile:wim\boot.wim /index:1 /MountDir:%CD%\bot
dir /a-d /b bot\windows\system32\*.dll >BOOTFN.OLD
ECHO .
ECHO 第3步:集成驱动文件......
ECHO .
REM 将w7pe中驱动有关文件移到bot中
rd bot\windows\inf /s /q
rd bot\windows\system32\drivers /s /q
rd bot\windows\system32\config /s /q
rd bot\windows\system32\DriverStore /s /q
move w7pe\windows\inf bot\windows\
move w7pe\windows\system32\drivers bot\windows\system32\
move w7pe\windows\system32\config bot\windows\system32\
move w7pe\windows\system32\DriverStore bot\windows\system32\
REM 集成驱动
Dism /image:bot /Add-Driver /driver:"DRV" /recurse /ForceUnsigned
REM 将已经集成好的位于bot中的原w7pe中驱动有关文件移回w7pe中
move "bot\windows\inf" "w7pe\windows"
move "bot\windows\system32\config" "w7pe\windows\system32"
move "bot\windows\system32\drivers" "w7pe\windows\system32"
move "bot\windows\system32\DriverStore" "w7pe\windows\system32"
del "w7pe\windows\system32\*.pnf" /s /q
del "w7pe\windows\system32\config\*.log?" /s /q /a:h
del "w7pe\windows\inf\*.log" /q
del "w7pe\windows\system32\config\*.blf" /s /q /a:h
del "w7pe\windows\system32\config\*.regtrans-ms" /s /q /a:h
del "w7pe\Windows\System32\DriverStore\*.1" /q
ECHO .
ECHO 第4步:更新DLL文件......
ECHO .
ECHO .
REM 比较文件列表
if exist ADDDLL.TXT del ADDDLL.TXT /q
dir /a-d /b bot\windows\system32\*.dll >BOOTFN.NEW
for /f "tokens=*" %%i in (BOOTFN.OLD) do (
set %%i=m
)
for /f "delims=" %%a in (BOOTFN.NEW) do (
if not defined %%a >>ADDDLL.TXT echo %%a
)
REM 复制差异文件......
for /f "delims=" %%a in (ADDDLL.TXT) do (
copy /y "bot\windows\system32\%%a" "w7pe\windows\system32"
)
ECHO .
ECHO 第5步:更新DLL已经完成,按任意键写入wim\w7pe.wim并卸挂boot......
pause>nul
for %%i in (ADDDLL.TXT BOOTFN.OLD BOOTFN.NEW) do del %%i /Q
Dism /unmount-Wim /MountDir:"%CD%\w7pe" /Commit
Dism /unmount-Wim /MountDir:"%CD%\bot" /discard
:END
复制代码
特点:可放任意盘,任意子目录,只要将WIM文件夹(其中包含boot.wim w7pe.wim两个文件)和DRV文件夹(其中包含驱动安装文件)准备好,再将这个批处理放到这两个文件夹所在的位置,运行之就可以了。
(将boot.wim挂载目录改为bot,避免在Win7&8启动盘根下做的时候破坏启动盘;利用了文件列表记录文件来比较出新增文件,不用再将原dll复制保存一份了;改成相对路径,在任何位置都可以做了,不需要清理一个盘来做。)
[
本帖最后由 hhh333 于 2012-11-11 21:38 编辑
]
作者:
chanel
时间:
2012-11-11 19:33
好东西 谢谢分享
作者:
xyzxp
时间:
2012-11-11 19:41
强大,谢谢分享!!!
作者:
huaqingyuan
时间:
2012-11-11 20:02
win8pe,可以用吗?
作者:
201120122050
时间:
2012-11-11 20:06
谢谢分享!!!!!!!!!!!!!!!!!!!!!
作者:
tegl
时间:
2012-11-11 21:24
好东西,支持原创
作者:
2012ttt
时间:
2012-11-11 22:10
标题:
回复 #1 hhh333 的帖子
反馈
用这个批处理安装了一下驱动,完成后发现w7pe.wim文件里怎么多个[files]文件夹,里面全是1234之类的数字命名的文件,体积有我添加驱动的压缩包的三分之二大小。
这个[files]文件夹有用吗?能删吗?
[
本帖最后由 2012ttt 于 2012-11-11 23:19 编辑
]
作者:
2012yzz
时间:
2012-11-11 23:04
想问一下楼主有没有2003的PE这种工具呀.
作者:
2010hook
时间:
2012-11-11 23:43
标题:
回复 #1 hhh333 的帖子
楼主有两个地方是错的吧:
>BOOTFN.OLD
>BOOTFN.NEW
你要得到一个列表的话, 应该是两个">"才是连续写入. 否则, 最终只有一行内容.
不用DIR命令可以降低资源占用, 两处"dir"所在行都可以像这样改写:
for %%a in (bot\windows\system32\*.dll) do (
echo %%a >>BOOTFN.OLD
)
另一个换成 BOOTFN.NEW
[
本帖最后由 2010hook 于 2012-11-11 23:44 编辑
]
作者:
hhh333
时间:
2012-11-11 23:45
标题:
回复 #9 2010hook 的帖子
自己试一下就知道了,不解释
作者:
hhh333
时间:
2012-11-11 23:47
标题:
回复 #7 2012ttt 的帖子
dism打包就是这样的,可以解包后重新用其他工具打包
作者:
2012n5413
时间:
2012-11-21 10:37
标题:
标题
头疼这个集成驱动
作者:
2012n5413
时间:
2012-11-21 22:30
标题:
回复 #1 hhh333 的帖子
提示系统找不到ADDDLL.txt
作者:
aimengyucheng
时间:
2014-12-9 23:27
支持
作者:
8696648
时间:
2014-12-9 23:44
谢谢分享!!!
作者:
x9tian
时间:
2014-12-10 11:03
本帖最后由 x9tian 于 2014-12-10 12:50 编辑
hhh333 发表于 2012-11-11 23:45
自己试一下就知道了,不解释
H3 兄,你有工环境 试下看行不行, 我是直截把你的再精练了些,不生存临时文件提搞效率,
@Echo Off&COLOR 1F
REM 原创by chiannet,修改by TCLSHX、H3 精简 x9tian
REM bbs.wuyou.net
setlocal EnableDelayedExpansion
Echo.
ECHO 本工具用来给W7PE增加驱动,各文件夹及文件意义如下:
ECHO w7pe文件夹----w7pe.wim之挂载目标
ECHO bot文件夹-----boot.wim之挂载目标
ECHO wim文件夹-----boot.wim w7pe.wim等WIM文件存放处
ECHO drv文件夹-----欲添加的驱动文件存放处
Echo.
ECHO 请按以上要求将WIM文件和驱动文件准备好(以上位于根或子文件夹均可)!
ECHO 本批处理必须要在安装了Windows AIK(KB3AIK_CN.ISO)的环境中运行!
Echo.
ECHO 如果已经作好上述准备工作,按任意键继续......
pause>nul
Echo.
ECHO 第1步:检查用于挂载的WIM文件......
Echo.
If not Exist wim\W7PE.WIM (
echo.没有 W7PE.WIM镜像文件!
If not Exist wim\boot.wim echo 没有Win7原版boot.wim镜像文件!
PING -N 5 127.0.1 >NUL 2>NUL
EXIT
)
Echo.
ECHO 第2步:挂载WIM镜像......
Echo.
If Exist w7pe RD w7pe /S /Q>NUL 2>NUL
If Exist bot RD bot /S /Q>NUL 2>NUL
md w7pe
md bot
Dism /Mount-Wim /WimFile:wim\W7PE.WIM /index:1 /MountDir:%CD%\w7pe
Dism /Mount-Wim /WimFile:wim\boot.wim /index:1 /MountDir:%CD%\bot
for /f "tokens=*" %%i in ('dir /a-d /b bot\windows\system32\*.dll') do set "%%i=_"
ECHO .
ECHO 第3步:集成驱动文件......
ECHO .
REM 将w7pe中驱动有关文件移到bot中
del \\?\\%cd:~2%windows\inf\*.* \\?\\%cd:~2%windows\system32\drivers\*.* \\?\\%cd:~2%windows\system32\DriverStore\*.* /a /f /s /q 2>NUL
move w7pe\windows\inf bot\windows\
move w7pe\windows\system32\drivers bot\windows\system32\
move w7pe\windows\system32\config bot\windows\system32\
move w7pe\windows\system32\DriverStore bot\windows\system32\
REM 集成驱动
Dism /image:bot /Add-Driver /driver:"DRV" /recurse /ForceUnsigned
REM 将已经集成好的位于bot中的原w7pe中驱动有关文件移回w7pe中
move "bot\windows\inf" "w7pe\windows"
move "bot\windows\system32\config" "w7pe\windows\system32"
move "bot\windows\system32\drivers" "w7pe\windows\system32"
move "bot\windows\system32\DriverStore" "w7pe\windows\system32"
del "w7pe\windows\system32\*.pnf" /s /q
del "w7pe\windows\system32\config\*.log?" /s /q /a:h
del "w7pe\windows\inf\*.log" /q
del "w7pe\windows\system32\config\*.blf" /s /q /a:h
del "w7pe\windows\system32\config\*.regtrans-ms" /s /q /a:h
del "w7pe\Windows\System32\DriverStore\*.1" /q
ECHO .
ECHO 第4步:更新DLL文件......
ECHO .
ECHO .
REM 比较文件列表 复制差异文件......
for /f "delims=" %%a in ('dir /a-d /b bot\windows\system32\*.dll') do (
set /a num+=1
if not defined %%a copy /y "bot\windows\system32\%%a" "w7pe\windows\system32"
)
ECHO .
ECHO 第5步:更新增加 %num% 个 DLL已经完成,按任意键写入wim\w7pe.wim并卸挂boot......
pause>nul
Dism /unmount-Wim /MountDir:"%CD%\w7pe" /Commit
Dism /unmount-Wim /MountDir:"%CD%\bot" /discard
复制代码
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/)
Powered by Discuz! X3.3