无忧启动论坛

 找回密码
 注册
搜索

求一个增加Wim文件到BCD的批处理

查看数: 9377 | 评论数: 26 | 收藏 4
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-5-16 23:22

正文摘要:

本帖最后由 smellsun 于 2020-5-16 23:27 编辑 传统模式和uefi  都要   不需要自动复制Wim和SDI , 这个我们手动复制,固定文件名  boot.wim  boot.sdi  固定位 ...

回复

smellsun 发表于 2020-5-22 18:54:01
2010sya 发表于 2020-5-21 23:49
装机的话,还是找个一键GHOST或类似的东东吧

不是装机,相当于PE版的一键还原精灵,
tolerantor 发表于 2020-5-22 15:26:41
谢谢
坏坏小生 发表于 2020-5-22 09:26:52
如果你出点RMB的话,直接写成EXE不就更香吗?
xxnh 发表于 2020-5-22 08:51:30
不用复制到ESP分区,还是放在C盘下比较好,然后批处理就可以通用MBR和UEFI
qingyi78 发表于 2020-5-22 00:57:28
hilsonma 发表于 2020-5-21 05:23
批处理放到boot.sdi所在文件夹
如果wim文件是同文件夹里的boot.wim,直接点击批处理
如果wim文件不是同 ...

高手在这个,我个人测试成功!
qingyi78 发表于 2020-5-22 00:51:10
smellsun 发表于 2020-5-21 23:28
Win7 传统模式下 不成功

用17楼的。我也去试试。
2010sya 发表于 2020-5-21 23:49:08
装机的话,还是找个一键GHOST或类似的东东吧


不知道能否满足楼主需求?

点评

不是装机,相当于PE版的一键还原精灵,  详情 回复 发表于 2020-5-22 18:54
smellsun 发表于 2020-5-21 19:19:30
liuzhaoyzz 发表于 2020-5-19 18:50
如果一个批处理写出来,只能用于这一台或者同类型的电脑,写了干啥呢?不如直接用bootice搞下算了 ...

批处理效率高。。。1秒
smellsun 发表于 2020-5-21 19:18:49
liuzhaoyzz 发表于 2020-5-18 06:33
楼主的思路就不对,不能惯着他!

  我是电脑店 ,装机需求 装机需求, 批处理主要给小白用,傻瓜无脑。
同时考虑客户的易用性。
hilsonma 发表于 2020-5-21 05:23:00
本帖最后由 hilsonma 于 2020-5-21 05:44 编辑
  1. @echo off
  2. set sdi=%~p0boot.sdi
  3. set sdi_drv=%~d0
  4. set wim=%~p0boot.wim
  5. set des=boot.wim
  6. set wim_drv=%sdi_drv%
  7. if not %1a==a set wim=%~pnx1&&set des=%~nx1&&set wim_drv=%~d1
  8. for /f "tokens=2 delims={}" %%a in ('bcdedit /create /application osloader') do set Guid={%%a}
  9. bcdedit /set %Guid% description %des%
  10. bcdedit /set %Guid% device ramdisk=[%wim_drv%]%wim%,{ramdiskoptions}
  11. bcdedit /set %Guid% osdevice ramdisk=[%wim_drv%]%wim%,{ramdiskoptions}
  12. bcdedit /set %Guid% systemroot \Windows
  13. bcdedit /set %Guid% detecthal 1
  14. bcdedit /set %Guid% winpe 1
  15. bcdedit /displayorder %Guid% /addlast
  16. bcdedit /timeout 5
  17. bcdedit /set {bootmgr} nointegritychecks 1
  18. bcdedit /create {ramdiskoptions}
  19. bcdedit /set {ramdiskoptions} ramdisksdidevice [%sdi_drv%]
  20. bcdedit /set {ramdiskoptions} ramdisksdipath %sdi%
复制代码

批处理放到boot.sdi所在文件夹
如果wim文件是同文件夹里的boot.wim,直接点击批处理
如果wim文件不是同文件夹里的boot.wim,将wim文件拖放到批处理上

UEFI平台下修改的是UEFI启动的BCD
BIOS平台下修改的是BIOS启动的BCD
批处理是通用的。

点评

高手在这个,我个人测试成功!  详情 回复 发表于 2020-5-22 00:57
liuzhaoyzz 发表于 2020-5-19 18:50:48
        如果一个批处理写出来,只能用于这一台或者同类型的电脑,写了干啥呢?不如直接用bootice搞下算了,还是GUI的。

点评

批处理效率高。。。1秒  详情 回复 发表于 2020-5-21 19:19
qingyi78 发表于 2020-5-19 15:01:00
本帖最后由 qingyi78 于 2020-5-22 00:59 编辑

修改了一下LIU_ZHENFENG大神的批处理,固定了路径。可能有错。但对于丹ESP分区做这个批处理应该不难

已删除自己的批处理,请关注17楼的大神!
qingyi78 发表于 2020-5-19 14:51:38
传统模式和uefi  都要   不需要自动复制Wim和SDI , 这个我们手动复制,固定文件名  boot.wim  boot.sdi  固定位置 引导分区 boot目录 注意不是系统所在分区

这个说一下本人的具体使用环境, 电脑公司装机需求。  
分区特殊    MBR    2个主分区    boot.wim 在首分区 通常这个分区是隐藏的
UEFI  boot.wim 在首分区 通常这个分区是隐藏的

突然发现楼主的分区其实没那么复杂,也就是说是单一ESP分区引导UEFI兼负责LEGACY引导也就是说所有的启动文件都在这个分区,甚至连BOOT.WIM和BOOT.SDI也是固定的。只需要mountvol把ESP分区固定盘符为Z即可写出相当简单不用变量的批处理。我不会写,但相信很多批处理高手可以写出特别完美的带判断的批处理。
qingyi78 发表于 2020-5-19 14:45:25
liu_zhenfeng 发表于 2020-5-17 22:42
实际来源于http://bbs.wuyou.net/forum.php?mod=viewthread&tid=408477&page=2#pid3752228这个贴里的大神 ...

其实主要是研究的精神和发现问题解决问题的能力,,从07年开始和不点一起探讨G4D的兼容问题开始,就慢慢学习无忧老大们的探索精神以及自我纠错能力。
liuzhaoyzz 发表于 2020-5-18 06:33:22
liu_zhenfeng 发表于 2020-5-17 22:33
因为题主说了是“ 固定文件名  boot.wim  boot.sdi  固定位置 ”了

楼主的思路就不对,不能惯着他!

点评

我是电脑店 ,装机需求 装机需求, 批处理主要给小白用,傻瓜无脑。 同时考虑客户的易用性。  详情 回复 发表于 2020-5-21 19:18
liu_zhenfeng 发表于 2020-5-17 22:42:57
qingyi78 发表于 2020-5-17 19:22
http://wuyou.net/forum.php?mod=viewthread&tid=416395
现在再用的就是大神的这个帖子的批处理。看了你 ...

实际来源于http://bbs.wuyou.net/forum.php?m ... p;page=2#pid3752228这个贴里的大神们的代码。我只是发现套成压缩包更能通用,我还差的远着呢....

点评

其实主要是研究的精神和发现问题解决问题的能力,,从07年开始和不点一起探讨G4D的兼容问题开始,就慢慢学习无忧老大们的探索精神以及自我纠错能力。  详情 回复 发表于 2020-5-19 14:45
liu_zhenfeng 发表于 2020-5-17 22:33:10
liuzhaoyzz 发表于 2020-5-17 19:05
批处理可以做到遍历指定目录的任意一个wim文件并加入启动项,为什么要固定死名字呢?换个PE怎么 ...

因为题主说了是“ 固定文件名  boot.wim  boot.sdi  固定位置 ”了

点评

楼主的思路就不对,不能惯着他!  详情 回复 发表于 2020-5-18 06:33
qingyi78 发表于 2020-5-17 19:22:15

http://wuyou.net/forum.php?mod=viewthread&tid=416395
现在再用的就是大神的这个帖子的批处理。看了你新的批处理感觉好像更好,不过仍有可以完善的地方。

点评

实际来源于http://bbs.wuyou.net/forum.php?mod=viewthread&tid=408477&page=2#pid3752228这个贴里的大神们的代码。我只是发现套成压缩包更能通用,我还差的远着呢....  详情 回复 发表于 2020-5-17 22:42
liuzhaoyzz 发表于 2020-5-17 19:05:40
liu_zhenfeng 发表于 2020-5-17 15:35
set wim=testpe         wim文件名
set sdi=boot             boot文件名
set title=WindowsPE  启动项名 ...

        批处理可以做到遍历指定目录的任意一个wim文件并加入启动项,为什么要固定死名字呢?换个PE怎么办?

点评

因为题主说了是“ 固定文件名 boot.wim boot.sdi 固定位置 ”了  详情 回复 发表于 2020-5-17 22:33
liu_zhenfeng 发表于 2020-5-17 15:35:04
set wim=testpe         wim文件名
set sdi=boot             boot文件名
set title=WindowsPE  启动项名称
set partition=z:         挂载到哪个盘

点评

批处理可以做到遍历指定目录的任意一个wim文件并加入启动项,为什么要固定死名字呢?换个PE怎么办?  详情 回复 发表于 2020-5-17 19:05
liu_zhenfeng 发表于 2020-5-17 11:17:49
liuzhaoyzz 发表于 2020-5-17 09:45
1、mountvol.exe %partition% /s只适用于单硬盘有一个EFI分区的情况,对于多硬盘不能胜任,比如一个SSD硬 ...

自适应不仅仅是winload.exe/winload.efi的不同,隐藏分区挂载也大不一样,先来个单纯EFI的题主试试看。
liuzhaoyzz 发表于 2020-5-17 09:45:33

1、mountvol.exe %partition% /s只适用于单硬盘有一个EFI分区的情况,对于多硬盘不能胜任,比如一个SSD硬盘+若干个大容量的GPT机械硬盘就难以胜任。
2、另外对于楼主图1的场景,有个1.25GB的活动MBR分区,是隐藏的,mountvol.exe %partition% /s也是不能自动挂载这个隐藏分区的。
3、楼主要求的适用于BIOS/UEFI启动的场景,上面的代码对于winload.exe/winload.efi不能自适应。

楼主可用过我写的PE安装器?

点评

自适应不仅仅是winload.exe/winload.efi的不同,隐藏分区挂载也大不一样,先来个单纯EFI的题主试试看。  详情 回复 发表于 2020-5-17 11:17
smellsun 发表于 2020-5-16 23:27:21
坐等大佬出现
liu_zhenfeng 发表于 2020-5-16 23:22:22
  1. @echo off
  2. ::
  3. set wim=testpe
  4. set sdi=boot
  5. set title=%wim%
  6. set partition=z:
  7. ::
  8. mountvol.exe %partition% /s
  9. ::
  10. if exist "%partition%\boot\%wim%\id_1" (set/p id_1=<"%partition%\boot\%wim%\id_1" )
  11. if exist "%partition%\boot\%wim%\id_2" (set/p id_2=<"%partition%\boot\%wim%\id_2" )
  12. bcdedit /delete %id_1% /f >nul 2>nul
  13. bcdedit /delete %id_2% /f >nul 2>nul
  14. ::
  15. set id1={%time:~6,2%%time:~9,2%ffff-8d96-11de-8e71-fffffffffffa}
  16. set id2={%time:~6,2%%time:~9,2%ffff-8d96-11de-8e71-fffffffffffb}
  17. bcdedit /create %id2% /d "%title%" /device
  18. bcdedit /set %id2% ramdisksdidevice partition=%partition%
  19. bcdedit /set %id2% ramdisksdipath "\boot\%wim%\%sdi%.sdi"
  20. ::
  21. bcdedit /create %id1% /d "%title%" /application osloader
  22. bcdedit /set %id1% device ramdisk="[%partition%]\boot\%wim%\%wim%.wim",%id2%
  23. bcdedit /set %id1% osdevice ramdisk="[%partition%]\boot\%wim%\%wim%.wim",%id2%
  24. bcdedit /set %id1% path \windows\system32\boot\winload.efi
  25. bcdedit /set %id1% description "%title%"
  26. bcdedit /set %id1% locale zh-CN
  27. bcdedit /set %id1% inherit {bootloadersettings}
  28. bcdedit /set %id1% systemroot \windows
  29. bcdedit /set %id1% detecthal Yes
  30. bcdedit /set %id1% winpe Yes
  31. bcdedit /set %id1% ems no
  32. bcdedit /displayorder %id1% /addlast
  33. ::
  34. mountvol.exe %partition% /d
  35. ::
  36. timeout /t 5
复制代码
EFI_addwim_tmp2020517.txt (1.25 KB, 下载次数: 16)


点评

Win7 传统模式下 不成功[attachimg]457520[/attachimg] [attachimg]457519[/attachimg] [attachimg]457521[/attachimg] [attachimg]457522[/attachimg]  详情 回复 发表于 2020-5-21 23:28
http://wuyou.net/forum.php?mod=viewthread&tid=416395 现在再用的就是大神的这个帖子的批处理。看了你新的批处理感觉好像更好,不过仍有可以完善的地方。  详情 回复 发表于 2020-5-17 19:22
UEFI 下可用 但是 启动项名称哪里添加?  发表于 2020-5-17 14:18
1、mountvol.exe %partition% /s只适用于单硬盘有一个EFI分区的情况,对于多硬盘不能胜任,比如一个SSD硬盘+若干个大容量的GPT机械硬盘就难以胜任。 2、另外对于楼主图1的场景,有个1.25GB的活动MBR分区,是隐藏的  详情 回复 发表于 2020-5-17 09:45

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

闽公网安备 35020302032614号

GMT+8, 2025-7-19 04:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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