|
本帖最后由 nyjy_hx 于 2020-12-1 10:27 编辑
批处理结合 7z 压缩工具实现从ISO文件中提取指定文件到指定目录 并用bcdedit 向启动菜单中写入winpe启动菜单
需要winpe iso文件 7z.exe 7z.dll 放到批处理目录 就可以
期中WIM SDI 文件是在ISO文件中 批处理中的名字 请根据自己的情况修改 紫色是安装后的路径及文件名 红色是ISO文件中的文件名 可以放在ISO文件内任意目录中 应坛友要求 关键位置增加注释 方便自行调试
下面放出 批处理内容供大家参考学习
echo off
title 凌云WINPE工具箱安装程序
rem 定义窗体大小 前景色及背景色
mode con cols=60 lines=30 & color 9f
cls
rem *******以下区域为参数设置区域**********
rem 定义启动菜单名称
set m_title=凌云WINPE工具箱
rem 定义安装路径 默认就是系统盘盘符
set m_path=C:
rem 定义启动菜单等待时间 单位秒
set m_time=5
rem 定义安装类型,如果不是UEFI启动类型请改成任意字符串
set m_mode=UEFI
rem *******以上区域为参数设置区域**********
rem 判断程序是否安装过 主要用作删除用 注意这里是判断系统是否存在lype\lype.sdi这个文件 这个文件下面会说怎么来的
if exist %m_path%\lype\lype.sdi (goto m_uninstall)
rem ******以下是安装主界面************
:m_main
echo 当前选择安装路径: %m_path%
echo.
echo 启动菜单名称: %m_title%
echo.
echo 启动菜单等待时间: %m_time% 秒
echo.
echo 系统启动类型为: %m_mode%
echo.
echo 请确认以上信息是否正确,正确请按Y继续,否则请修改批处理中对应信息。
echo.
set /p input=请选择[y/n]:
if not "%input%"=="y" (goto m_quit)
rem ******以上是安装主界面 显示您的配置信息 等待用户输入y 后开启安装 按其他键就会退出程序************
rem ******以下是安装主程序********************
:m_install
rem ******调用7z.exe 将efi.iso文件中的 lype.sdi 和 lyw1064_cj.wim 释放到 C:\LYPE目录下 EFI.ISO就是您的WINPE文件 lype.sdi 和 lyw1064_cj.wim 可以在EFI.ISO中任意位置,这两个文件是您的PE 启动文件需要自己找到并做对应修改 %m_path%\lype 这个目录就是安装目录 可以自定义
7z.exe e efi.iso -o%m_path%\lype -r lype.sdi -y
7z.exe e efi.iso -o%m_path%\lype -r lyw1064_cj.wim -y
rem 根据您的配置 设定 启动菜单等待时间
bcdedit /timeout %m_time% >null
rem 增加两个ID 这里使用固定ID 目的是为了删除时方便避免误删或删除错误
set id1={b38a9fc1-5690-11da-b795-fffffffffe3a}>null
set id2={b38a9fc1-5690-11da-b795-fffffffffe3b}>null
rem 根据您自己定义的 启动菜单名来增加启动条目
bcdedit /create %id2% /d "%m_title%" /device>null
bcdedit /set %id2% ramdisksdidevice partition="%m_path%">null
rem 设定SDI文件位置和名字根据您的SDI文件及安装目录进行设置
bcdedit /set %id2% ramdisksdipath \lype\lype.sdi>null
bcdedit /create %id1% /d "%m_title%" /application osloader>null
rem 设定WIM文件位置和名字根据您的SDI文件及安装目录进行设置
bcdedit /set %id1% device ramdisk="[%m_path%]\lype\lyw1064_cj.wim",{ramdiskoptions}>null
bcdedit /set %id1% osdevice ramdisk="[%m_path%]\lype\lyw1064_cj.wim",{ramdiskoptions}>null
bcdedit /set %id1% path \windows\system32\boot\winload.exe>null
if "%m_mode%" == "UEFI" (bcdedit /set %id1% path \Windows\system32\boot\winload.efi)>null
bcdedit /set %id1% description "%m_title%">null
bcdedit /set %id1% locale zh-CN>null
bcdedit /set %id1% inherit {bootloadersettings}>null
bcdedit /set %id1% systemroot \windows>null
bcdedit /set %id1% detecthal Yes>null
bcdedit /set %id1% winpe Yes>null
bcdedit /set %id1% ems no>null
bcdedit /displayorder %id1% /addlast>null
rem 对安装后的lype目录增加隐藏属性
attrib +h %m_path%\lype>null
echo 已经成功将PE工具箱安装到本地硬盘,按任意键退出安装程序!!
pause>null
exit
:m_uninstall
cls
echo 检测到您已安装过本PE工具箱,重复安装会导致系统混乱!!
echo.
echo 建议您卸载后重新运行本程序!!!
echo.
set /p m_input=是否卸载[y/n]:
if %m_input%==y (goto m_uni)
exit
:m_quit
EXIT
:m_uni
cls
rem 卸载程序 主要是删除文件 %m_path%\lype\ 就是上面您自己的安装目录 根据您的喜好自己改吧
del /f /s /q %m_path%\lype\*.*>null
rd /s /q %m_path%\lype>null
rem 由于上面我们使用的是自定义 固定的ID名 所以这里在删除时才能保证删除的就是我们自己增加的条目
bcdedit /delete {b38a9fc1-5690-11da-b795-fffffffffe3a}>null
bcdedit /delete {b38a9fc1-5690-11da-b795-fffffffffe3b}>null
echo PE工具箱已从本机删除,如需安装可以再次运行本程序!!!
pause>null
|
|