无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5800|回复: 18
打印 上一主题 下一主题

也来发一个自动给win7pe集成驱动的批处理

  [复制链接]
跳转到指定楼层
1#
发表于 2012-11-11 19:06:16 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
参照各位大侠的研究成果,也发一个所谓替换法巧妙添加驱动的批处理:
  1. @Echo Off
  2. REM 原创by chiannet,修改by TCLSHX、H3
  3. setlocal EnableDelayedExpansion
  4. COLOR 1F
  5. Echo.
  6. ECHO 本工具用来给W7PE增加驱动,各文件夹及文件意义如下:
  7. ECHO   w7pe文件夹----w7pe.wim之挂载目标
  8. ECHO   bot文件夹-----boot.wim之挂载目标
  9. ECHO   wim文件夹-----boot.wim w7pe.wim等WIM文件存放处
  10. ECHO   drv文件夹-----欲添加的驱动文件存放处
  11. Echo.
  12. ECHO 请按以上要求将WIM文件和驱动文件准备好(以上位于根或子文件夹均可)!
  13. ECHO 本批处理必须要在安装了Windows AIK(KB3AIK_CN.ISO)的环境中运行!
  14. Echo.
  15. ECHO 如果已经作好上述准备工作,按任意键继续......
  16. pause>nul
  17. Echo.
  18. ECHO 第1步:检查用于挂载的WIM文件......
  19. Echo.
  20. set nowim=0
  21. If not Exist wim\W7PE.WIM set nowim=1 &&echo 没有Win7PE镜像文件w7pe.wim!
  22. If not Exist wim\boot.wim set nowim=1 &&echo 没有Win7原版boot.wim镜像文件!
  23. if not "%nowim%"=="0" pause&&goto end
  24. Echo.
  25. ECHO 第2步:挂载WIM镜像......
  26. Echo.
  27. If Exist w7pe RD w7pe /S /Q>NUL 2>NUL
  28. If Exist bot RD bot /S /Q>NUL 2>NUL
  29. md w7pe
  30. md bot
  31. Dism /Mount-Wim /WimFile:wim\W7PE.WIM /index:1 /MountDir:%CD%\w7pe
  32. Dism /Mount-Wim /WimFile:wim\boot.wim /index:1 /MountDir:%CD%\bot
  33. dir /a-d /b bot\windows\system32\*.dll >BOOTFN.OLD
  34. ECHO .
  35. ECHO 第3步:集成驱动文件......
  36. ECHO .
  37. REM 将w7pe中驱动有关文件移到bot中
  38. rd bot\windows\inf  /s /q
  39. rd bot\windows\system32\drivers /s /q
  40. rd bot\windows\system32\config  /s /q
  41. rd bot\windows\system32\DriverStore /s /q
  42. move w7pe\windows\inf bot\windows\
  43. move w7pe\windows\system32\drivers bot\windows\system32\
  44. move w7pe\windows\system32\config bot\windows\system32\
  45. move w7pe\windows\system32\DriverStore bot\windows\system32\
  46. REM 集成驱动
  47. Dism /image:bot /Add-Driver /driver:"DRV" /recurse /ForceUnsigned  
  48. REM 将已经集成好的位于bot中的原w7pe中驱动有关文件移回w7pe中
  49. move "bot\windows\inf" "w7pe\windows"
  50. move "bot\windows\system32\config" "w7pe\windows\system32"
  51. move "bot\windows\system32\drivers" "w7pe\windows\system32"
  52. move "bot\windows\system32\DriverStore" "w7pe\windows\system32"
  53. del "w7pe\windows\system32\*.pnf" /s /q
  54. del "w7pe\windows\system32\config\*.log?" /s /q /a:h
  55. del "w7pe\windows\inf\*.log" /q
  56. del "w7pe\windows\system32\config\*.blf" /s /q /a:h
  57. del "w7pe\windows\system32\config\*.regtrans-ms" /s /q /a:h
  58. del "w7pe\Windows\System32\DriverStore\*.1" /q
  59. ECHO .
  60. ECHO 第4步:更新DLL文件......
  61. ECHO .
  62. ECHO .  
  63. REM 比较文件列表
  64. if exist ADDDLL.TXT del ADDDLL.TXT /q
  65. dir /a-d /b bot\windows\system32\*.dll >BOOTFN.NEW
  66. for /f "tokens=*" %%i in (BOOTFN.OLD) do (
  67.         set %%i=m
  68. )
  69. for /f "delims=" %%a in (BOOTFN.NEW) do (
  70.         if not defined %%a >>ADDDLL.TXT echo %%a
  71. )
  72. REM 复制差异文件......
  73. for /f "delims=" %%a in (ADDDLL.TXT) do (
  74.    copy /y "bot\windows\system32\%%a" "w7pe\windows\system32"
  75. )
  76. ECHO .  
  77. ECHO 第5步:更新DLL已经完成,按任意键写入wim\w7pe.wim并卸挂boot......
  78. pause>nul
  79. for %%i in (ADDDLL.TXT BOOTFN.OLD BOOTFN.NEW) do del %%i /Q
  80. Dism /unmount-Wim /MountDir:"%CD%\w7pe" /Commit
  81. Dism /unmount-Wim /MountDir:"%CD%\bot" /discard
  82. :END
复制代码


特点:可放任意盘,任意子目录,只要将WIM文件夹(其中包含boot.wim w7pe.wim两个文件)和DRV文件夹(其中包含驱动安装文件)准备好,再将这个批处理放到这两个文件夹所在的位置,运行之就可以了。
(将boot.wim挂载目录改为bot,避免在Win7&8启动盘根下做的时候破坏启动盘;利用了文件列表记录文件来比较出新增文件,不用再将原dll复制保存一份了;改成相对路径,在任何位置都可以做了,不需要清理一个盘来做。)

[ 本帖最后由 hhh333 于 2012-11-11 21:38 编辑 ]
推荐
发表于 2012-11-11 19:33:22 | 只看该作者
好东西 谢谢分享
回复

使用道具 举报

推荐
发表于 2012-11-11 21:24:57 | 只看该作者
好东西,支持原创
回复

使用道具 举报

推荐
发表于 2012-11-11 20:06:45 | 只看该作者
谢谢分享!!!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

推荐
发表于 2012-11-11 20:02:49 | 只看该作者
win8pe,可以用吗?
回复

使用道具 举报

推荐
发表于 2012-11-11 19:41:31 | 只看该作者
强大,谢谢分享!!!
回复

使用道具 举报

16#
发表于 2014-12-10 11:03:34 | 只看该作者
本帖最后由 x9tian 于 2014-12-10 12:50 编辑
hhh333 发表于 2012-11-11 23:45
自己试一下就知道了,不解释


H3 兄,你有工环境 试下看行不行, 我是直截把你的再精练了些,不生存临时文件提搞效率,

  1. @Echo Off&COLOR 1F
  2. REM 原创by chiannet,修改by TCLSHX、H3 精简 x9tian
  3. REM bbs.wuyou.net
  4. setlocal EnableDelayedExpansion
  5. Echo.
  6. ECHO 本工具用来给W7PE增加驱动,各文件夹及文件意义如下:
  7. ECHO   w7pe文件夹----w7pe.wim之挂载目标
  8. ECHO   bot文件夹-----boot.wim之挂载目标
  9. ECHO   wim文件夹-----boot.wim w7pe.wim等WIM文件存放处
  10. ECHO   drv文件夹-----欲添加的驱动文件存放处
  11. Echo.
  12. ECHO 请按以上要求将WIM文件和驱动文件准备好(以上位于根或子文件夹均可)!
  13. ECHO 本批处理必须要在安装了Windows AIK(KB3AIK_CN.ISO)的环境中运行!
  14. Echo.
  15. ECHO 如果已经作好上述准备工作,按任意键继续......
  16. pause>nul
  17. Echo.
  18. ECHO 第1步:检查用于挂载的WIM文件......
  19. Echo.
  20. If not Exist wim\W7PE.WIM (
  21. echo.没有 W7PE.WIM镜像文件!
  22. If not Exist wim\boot.wim echo 没有Win7原版boot.wim镜像文件!
  23. PING -N 5 127.0.1 >NUL 2>NUL
  24. EXIT
  25. )


  26. Echo.
  27. ECHO 第2步:挂载WIM镜像......
  28. Echo.
  29. If Exist w7pe RD w7pe /S /Q>NUL 2>NUL
  30. If Exist bot RD bot /S /Q>NUL 2>NUL
  31. md w7pe
  32. md bot
  33. Dism /Mount-Wim /WimFile:wim\W7PE.WIM /index:1 /MountDir:%CD%\w7pe
  34. Dism /Mount-Wim /WimFile:wim\boot.wim /index:1 /MountDir:%CD%\bot

  35. for /f "tokens=*" %%i in ('dir /a-d /b bot\windows\system32\*.dll') do set "%%i=_"

  36. ECHO .
  37. ECHO 第3步:集成驱动文件......
  38. ECHO .
  39. REM 将w7pe中驱动有关文件移到bot中
  40. del \\?\\%cd:~2%windows\inf\*.* \\?\\%cd:~2%windows\system32\drivers\*.*  \\?\\%cd:~2%windows\system32\DriverStore\*.* /a /f  /s /q 2>NUL
  41. move w7pe\windows\inf bot\windows\
  42. move w7pe\windows\system32\drivers bot\windows\system32\
  43. move w7pe\windows\system32\config bot\windows\system32\
  44. move w7pe\windows\system32\DriverStore bot\windows\system32\
  45. REM 集成驱动
  46. Dism /image:bot /Add-Driver /driver:"DRV" /recurse /ForceUnsigned  
  47. REM 将已经集成好的位于bot中的原w7pe中驱动有关文件移回w7pe中
  48. move "bot\windows\inf" "w7pe\windows"
  49. move "bot\windows\system32\config" "w7pe\windows\system32"
  50. move "bot\windows\system32\drivers" "w7pe\windows\system32"
  51. move "bot\windows\system32\DriverStore" "w7pe\windows\system32"
  52. del "w7pe\windows\system32\*.pnf" /s /q
  53. del "w7pe\windows\system32\config\*.log?" /s /q /a:h
  54. del "w7pe\windows\inf\*.log" /q
  55. del "w7pe\windows\system32\config\*.blf" /s /q /a:h
  56. del "w7pe\windows\system32\config\*.regtrans-ms" /s /q /a:h
  57. del "w7pe\Windows\System32\DriverStore\*.1" /q
  58. ECHO .
  59. ECHO 第4步:更新DLL文件......
  60. ECHO .
  61. ECHO .  
  62. REM 比较文件列表 复制差异文件......

  63. for /f "delims=" %%a in ('dir /a-d /b bot\windows\system32\*.dll') do (
  64.         set /a num+=1
  65.         if not defined %%a copy /y "bot\windows\system32\%%a" "w7pe\windows\system32"
  66. )


  67. ECHO .  
  68. ECHO 第5步:更新增加 %num% 个 DLL已经完成,按任意键写入wim\w7pe.wim并卸挂boot......
  69. pause>nul
  70. Dism /unmount-Wim /MountDir:"%CD%\w7pe" /Commit
  71. Dism /unmount-Wim /MountDir:"%CD%\bot" /discard

复制代码
回复

使用道具 举报

15#
发表于 2014-12-9 23:44:32 | 只看该作者
谢谢分享!!!
回复

使用道具 举报

14#
发表于 2014-12-9 23:27:06 | 只看该作者
支持
回复

使用道具 举报

13#
发表于 2012-11-21 22:30:20 | 只看该作者

回复 #1 hhh333 的帖子

提示系统找不到ADDDLL.txt
回复

使用道具 举报

12#
发表于 2012-11-21 10:37:28 | 只看该作者

标题

头疼这个集成驱动
回复

使用道具 举报

11#
 楼主| 发表于 2012-11-11 23:47:46 | 只看该作者

回复 #7 2012ttt 的帖子

dism打包就是这样的,可以解包后重新用其他工具打包
回复

使用道具 举报

10#
 楼主| 发表于 2012-11-11 23:45:56 | 只看该作者

回复 #9 2010hook 的帖子

自己试一下就知道了,不解释
回复

使用道具 举报

9#
发表于 2012-11-11 23:43:15 | 只看该作者

回复 #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 编辑 ]
回复

使用道具 举报

8#
发表于 2012-11-11 23:04:17 | 只看该作者
想问一下楼主有没有2003的PE这种工具呀.
回复

使用道具 举报

7#
发表于 2012-11-11 22:10:36 | 只看该作者

回复 #1 hhh333 的帖子

反馈

用这个批处理安装了一下驱动,完成后发现w7pe.wim文件里怎么多个[files]文件夹,里面全是1234之类的数字命名的文件,体积有我添加驱动的压缩包的三分之二大小。
这个[files]文件夹有用吗?能删吗?

[ 本帖最后由 2012ttt 于 2012-11-11 23:19 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-28 17:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表