无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 19505|回复: 70
打印 上一主题 下一主题

[发布] 用批处理实现的wimPE硬盘安装模板【20190916更新】加了uefi判断

    [复制链接]
跳转到指定楼层
1#
发表于 2019-9-14 23:32:22 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liu_zhenfeng 于 2019-9-16 00:40 编辑

批处理添加bcd菜单项功能来源自http://bbs.wuyou.net/forum.php?mod=viewthread&tid=408477&page=2#pid3752228
在我的电脑(win7x64)上实验成功后这几天修改了一下,用winrar打包成自解包后实现了PE安装模板。

20190916更新:加了uefi判断
if "%boot_mode%" == "UEFI" (bcdedit /set %id1% path \Windows\system32\boot\winload.efi)
uefi判断来自 http://wuyou.net/forum.php?mod=viewthread&tid=413675 bcdedit方案
Win10x64 uefi 模式能够启动女娲工坊win10PEx64 ,其他未测试。




wimPE硬盘安装模板20190915.exe (352.71 KB, 下载次数: 748)


附件里面的boot.sdi、test.wim是空文件。addwim.exe里是打包成64位自解包的addwim.cmd文件。


wim文件同名TXT对应Description项,取首行为菜单标题。如没有同名的txt文件,就取wim文件名为菜单标题



运行后有个是否安装提示(winrar自解压实现)


点是自解压到临时目录后依次运行copywimfiles.cmd、addwim.exe(64位)或addwim.cmd(32位)


看看BCD菜单项


自动生成删除批处理







批处理文件内容:         

copywimfiles.cmd

@echo off
TITLE CopyWimFiles
set aa=0
if /i %SystemDrive% == x: set aa=1
ver|find "5.">nul && set aa=1
if "%aa%" == "1" (cls&echo 不能在PE、XP中运行 &echo.&pause&exit)
::
for /f "delims=" %%i in ('dir/b *.wim')do echo %%~ni>"%temp%\wim"
for /f "delims=" %%i in ('dir/b *.sdi')do echo %%~ni>"%temp%\sdi"
set/p wim=<"%temp%\wim"
set/p sdi=<"%temp%\sdi"
::
if exist "%wim%.txt" (set /p title=<"%wim%.txt" )
if exist "%wim%.txt" (echo %title% >"%temp%\title" )
del %wim%.txt >nul 2>nul
::
md "%SystemDrive%\boot" >nul 2>nul
md "%SystemDrive%\boot\%wim%" >nul 2>nul
del "%SystemDrive%\boot\%wim%\*.wim" >nul 2>nul
del "%SystemDrive%\boot\%wim%\*.sdi" >nul 2>nul
::
copy "%wim%.wim" "%SystemDrive%\boot\%wim%"
del "%wim%.wim"
copy "%sdi%.sdi" "%SystemDrive%\boot\%wim%"
del "%sdi%.sdi"
if exist %windir%\SysWOW64 (start addwim.exe)else (start addwim.cmd)
if exist %windir%\SysWOW64 (del addwim.cmd)else (del addwim.exe)
echo.&echo.&echo 即将关闭窗口&timeout /t 15
del addwim.exe >nul 2>nul
del addwim.cmd >nul 2>nul
del %0



addwim.cmd
@echo off
TITLE 添加BCD启动项
set aa=0
if /i %SystemDrive% == x: set aa=1
ver|find "5.">nul && set aa=1
if "%aa%" == "1" (cls&echo 不能在PE、XP中运行 &echo.&pause&exit)
::
setlocal ENABLEDELAYEDEXPANSION
set /a n=0
set /a current_n=-1
set /a bootmgr_n=-1
for %%h in ({bootmgr},{current}) do (set /a n+=1 &for /f "tokens=1* delims= " %%a in ('bcdedit /enum  %%h') do (set "!n!_%%a=%%b"))
set "boot_mode=-1"
IF defined 2_path ( for %%q in (!2_path!) do (if /i "%%~xq"==".efi" set "boot_mode=UEFI"))
if !boot_mode! equ -1 (IF defined 1_path ( set "boot_mode=UEFI"))
::
set/p wim=<"%temp%\wim"
del "%temp%\wim"
set/p sdi=<"%temp%\sdi"
del "%temp%\sdi"
::
set title=%wim%
if exist "%temp%\title" (set/p title=<"%temp%\title" )
del "%temp%\title" >nul 2>nul
::
if exist "%SystemDrive%\boot\%wim%\id_1" (set/p id_1=<"%SystemDrive%\boot\%wim%\id_1" )
if exist "%SystemDrive%\boot\%wim%\id_2" (set/p id_2=<"%SystemDrive%\boot\%wim%\id_2" )
bcdedit /delete %id_1% /f >nul 2>nul
bcdedit /delete %id_2% /f >nul 2>nul
::
set id1={%time:~6,2%%time:~9,2%ffff-8d96-11de-8e71-fffffffffffa}
set id2={%time:~6,2%%time:~9,2%ffff-8d96-11de-8e71-fffffffffffb}
bcdedit /create %id2% /d "%title%" /device
bcdedit /set %id2% ramdisksdidevice partition=%SystemDrive%
bcdedit /set %id2% ramdisksdipath "\boot\%wim%\%sdi%.sdi"
::
bcdedit /create %id1% /d "%title%" /application osloader
bcdedit /set %id1% device ramdisk="[%SystemDrive%]\boot\%wim%\%wim%.wim",%id2%
bcdedit /set %id1% osdevice ramdisk="[%SystemDrive%]\boot\%wim%\%wim%.wim",%id2%
bcdedit /set %id1% path \windows\system32\boot\winload.exe
if "%boot_mode%" == "UEFI" (bcdedit /set %id1% path \Windows\system32\boot\winload.efi)
bcdedit /set %id1% description "%title%"
bcdedit /set %id1% locale zh-CN
bcdedit /set %id1% inherit {bootloadersettings}
bcdedit /set %id1% systemroot \windows
bcdedit /set %id1% detecthal Yes
bcdedit /set %id1% winpe Yes
bcdedit /set %id1% ems no
bcdedit /displayorder %id1% /addlast
echo %id1%>"%SystemDrive%\boot\%wim%\id_1"
echo %id2%>"%SystemDrive%\boot\%wim%\id_2"
::
echo @echo off >"%SystemDrive%\boot\DEL_%wim%.cmd"
echo bcdedit /delete %id1% >>"%SystemDrive%\boot\DEL_%wim%.cmd"
echo bcdedit /delete %id2% >>"%SystemDrive%\boot\DEL_%wim%.cmd"
echo rd /s /q "%SystemDrive%\boot\%wim%" >>"%SystemDrive%\boot\DEL_%wim%.cmd"
echo del "%SystemDrive%\boot\DEL_%wim%.cmd" >>"%SystemDrive%\boot\DEL_%wim%.cmd"
::
echo.&echo.&echo 即将关闭窗口&timeout /t 10 &del %0 &exit

评分

参与人数 4无忧币 +16 收起 理由
5257 + 5 赞一个!
maomihuacha + 1 很给力!
whyme22 + 5
879792799 + 5 很给力!

查看全部评分

2#
 楼主| 发表于 2019-9-16 22:18:39 | 显示全部楼层
本帖最后由 liu_zhenfeng 于 2019-9-16 22:31 编辑
rockup 发表于 2019-9-16 18:19
小白请问一下楼主,boot.sdi文件是那里来的呢?
我找了一个PE,替换testpe.wim,但最张用不了。可能问题出 ...


压缩包里的wim、sdi是零字节的空文件,是为了让批处理认名字好添加到BCD启动项。


ISO版PE里看看boot目录下有没有,我下载的PE是有这俩关键文件的。

???.wim    ???.sdi 名字不必一样, ???.wim 改名叫xxxPE.wim  boot.sdi就叫boot.sdi好了


回复

使用道具 举报

3#
 楼主| 发表于 2019-9-18 11:14:51 | 显示全部楼层
dxvyi 发表于 2019-9-17 19:58
太好了,一直在找这样的批处理程序
想问一下,addwim.exe比addwim.cmd多了什么设置?解包看两个批处理是一 ...




addwim.exe里的addwim.cmd与外面的addwim.cmd什么区别也没有,重点是压成自解压时选64位模块。我一开始用winrar打成自解压缩包提示找不到bcdedit命令,查了下是因默认自解包执行批处理命令是32位环境,重定向到SysWOW64里面去。想了个办法:将addwim.cmd压缩成64位自解包;用批处理判断是否存在SysWOW64,存在运行addwim.exe不存在运行addwim.cmd 。但这样带来另一个麻烦是每次都要改addwim.cmd再压成addwim.exe。所以改用临时文件传递wim、sdi文件名,平时使用时不需要改批处理内容了。

点评

我在64位环境下没问题,改成用一个Cmd了,以后有问题再改回来  详情 回复 发表于 2019-9-18 19:35
回复

使用道具 举报

4#
 楼主| 发表于 2020-4-5 21:50:12 | 显示全部楼层
zhang9876 发表于 2020-4-5 20:58
我替换了提示更改了硬件,启动不了,唉。。。

是什么PE?我试下?

点评

https://yunpan.360.cn/surl_yxn22vEP2Yh 有时间帮忙试试看,非常感谢  详情 回复 发表于 2020-4-6 19:44
回复

使用道具 举报

5#
 楼主| 发表于 2020-4-7 04:49:23 | 显示全部楼层
zhang9876 发表于 2020-4-6 19:44
https://yunpan.360.cn/surl_yxn22vEP2Yh     有时间帮忙试试看,非常感谢

已测试,正常启动

捕获.JPG (66.54 KB, 下载次数: 154)

捕获.JPG
回复

使用道具 举报

6#
 楼主| 发表于 2020-4-14 19:28:02 | 显示全部楼层
liuzhaoyzz 发表于 2020-3-10 13:48
下载试了下楼主的批处理,运行了下,结果直接修改的是C:\boot\BCD,而且指向的也是C盘的C:\boot\TestPE\Tes ...

用choice试了一下,应该可以实现等待几秒默认选%SystemDrive%和手动输入驱动器字母。我还没有完整的思路...

点评

需要考虑的因素其实挺多的,比如有多个硬盘,一个ssd硬盘,若干个机械硬盘,这样的电脑有不少,如果硬盘是GPT分区,需要考虑指定的esp分区挂载的问题。对于有的电脑根本不需要esp/fat32分区,任何一个分区都  详情 回复 发表于 2020-4-14 21:09
回复

使用道具 举报

7#
 楼主| 发表于 2020-4-14 23:23:41 | 显示全部楼层
本帖最后由 liu_zhenfeng 于 2020-4-15 17:10 编辑




.

回复

使用道具 举报

8#
 楼主| 发表于 2020-4-15 16:38:38 | 显示全部楼层
本帖最后由 liu_zhenfeng 于 2020-4-15 17:31 编辑
qingyi78 发表于 2020-3-10 22:59
我自己不会写批处理,但是批处理高手可以在这几个命令之前加一段选择的命令,以替换%SystemDrive%

md  ...

@echo off
:begin
choice /t 10 /c:yn /d:y /m:"是否安装到%SystemDrive:~0,1%盘?"
if %errorlevel%==2 goto no
if %errorlevel%==1 set DriveLetter=%SystemDrive:~0,1% &goto DriveLette

:no
cls&set/p DriveLetter=请输入盘符,再按回车键:
echo %DriveLetter%|findstr "^[a-zA-Z]">nul||(echo 输入错误!请重新输入!&timeout /t 5 &goto no)
if not exist %DriveLetter%: (echo %DriveLetter%盘不存在!&timeout /t 5 &goto no)

:DriveLette
echo 安装到%DriveLetter%盘
pause>nul
cls &goto begin

点评

谢谢大神,辛苦啦!  详情 回复 发表于 2020-4-15 17:49
回复

使用道具 举报

9#
 楼主| 发表于 2021-3-7 01:34:47 | 显示全部楼层
.__. 发表于 2021-3-6 22:29
楼主你好,我试了2个PE,都不行,全部提示 “最近更改了硬件或软件” 错误代码0xc000000e
另外想设置PE为 ...

PE地址是?我测试一下

点评

一个是微PE,稍等我上传下  详情 回复 发表于 2021-3-7 01:51
回复

使用道具 举报

10#
 楼主| 发表于 2021-3-7 02:38:49 | 显示全部楼层
本帖最后由 liu_zhenfeng 于 2021-3-7 03:43 编辑
.__. 发表于 2021-3-7 01:51
一个是微PE,稍等我上传下



在我的电脑上可以启动

点评

麻烦把图删下吧,太丑了  详情 回复 发表于 2021-3-7 03:00
回复

使用道具 举报

11#
 楼主| 发表于 2021-3-7 02:49:05 | 显示全部楼层
.__. 发表于 2021-3-7 02:01
您QQ是多少,我加下吧
链接:https://pan.baidu.com/s/1rA2JbUVqxbbNALsnxcXcvA
提取码:1111
1,自动设置PE为默认启动

没有考虑过这个功能,建议手动:




2,在PE下删除PE启动项的脚本

已有自动添加在系统中移除PE的批处理功能:







点评

麻烦你把我这PE和你软件打个包,上传下,我试试~ 不止一个PE出错,也不止我一个人出错,并且我和别人的毛病也都一样 肯定是哪里不对,我下载下你打包好的找找原因  详情 回复 发表于 2021-3-7 02:56
回复

使用道具 举报

12#
 楼主| 发表于 2021-3-7 02:58:02 | 显示全部楼层
.__. 发表于 2021-3-6 22:29
楼主你好,我试了2个PE,都不行,全部提示 “最近更改了硬件或软件” 错误代码0xc000000e
另外想设置PE为 ...

如果启动有问题建议用BOOTICE手动调到能启动的状态,再修改批处理bcdedit部分的命令 BOOTICEX64v1.3.4.exe (447.5 KB, 下载次数: 2)




点评

改了,没用  详情 回复 发表于 2021-3-7 03:01
回复

使用道具 举报

13#
 楼主| 发表于 2021-3-7 03:42:21 | 显示全部楼层
本帖最后由 liu_zhenfeng 于 2021-3-8 01:26 编辑

回复

使用道具 举报

14#
 楼主| 发表于 2021-3-17 14:43:16 | 显示全部楼层
wsdyleon 发表于 2021-3-17 10:07
前来学习一下,用不用下载sdi什么文件

需要iso格式win10pe里面的wim 、sdi 文件。

点评

感谢,测试了下,手动bootice设置了wim sdi文件,但启动后黑屏。 另外wim启动,应该不依赖硬盘里面系统的文件吧,怎么看启动。 efi跟传统启动方式一样吗 我直接用那个工具提示权限什么的  详情 回复 发表于 2021-3-17 15:00
回复

使用道具 举报

15#
 楼主| 发表于 2021-7-19 10:45:48 | 显示全部楼层
本帖最后由 liu_zhenfeng 于 2021-7-20 06:12 编辑

回复

使用道具 举报

16#
 楼主| 发表于 2022-3-27 00:32:55 | 显示全部楼层
piaomusic 发表于 2022-3-26 17:48
安装后自动重启并进一次PE系统,哪位高手知道怎么修改吗?????

看看默认启动

无标题.png (29.63 KB, 下载次数: 64)

无标题.png
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-11 17:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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