首页 > 爱搞机

WinPE系统的自动打包和测试的批处理脚本

moxiang 爱搞机 2021-05-08 00:27:30
在制作WINPE系统的时候,通常是用虚拟机来测试。

纯手工操作有以下步骤:

1.修改注册表或者修改文件等一系列增删改操作。
2.手动用wim工具打包成boot.wim
3.手动挂载虚拟机的VHD硬盘文件
4.把boot.wim复制到虚拟机硬盘的指定目录
5.卸载VHD硬盘文件

手工操作确实很烦琐,点鼠标点到手抽筋。所以我们需要一个自动化脚本来完成以上操作。

以下批处理脚本就是用来干这个事情的,内容仅供参考:

@echo off
title WinPE镜像打包工具
 
REM 设置工作环境变量
set VHD_PATH="D:\VBOX\BOOT\BOOT.VHD"
set WIM_PATH="G:\BOOT\BOOT.WIM"
 
REM 生成挂载VHD的脚本
echo select vdisk file=%VHD_PATH% > bin\mount.txt
echo attach vdisk >> bin\mount.txt
echo list disk >> bin\mount.txt
REM 生成卸载VHD的脚本
echo select vdisk file=%VHD_PATH% > bin\unmount.txt
echo detach vdisk >> bin\unmount.txt
 
:MENU
echo ***********************************************************
echo * WinPE制作主菜单
echo ***********************************************************
echo * VHD路径: %VHD_PATH%
echo * WIM路径: %WIM_PATH%
echo ***********************************************************
echo * 1.导出注册表
echo * 2.重建注册表
echo * 3.打包WIM镜像
echo * 4.挂载VHD磁盘
echo * 5.卸载VHD磁盘
echo * 6.复制WIM到VHD
echo * 7.一键打包WIM+复制到VHD
echo * 8.一键重建注册表+打包WIM+复制到VHD
echo ***********************************************************
set /p menu=请选择功能:
 
if %menu%==1 (
    call :DO_REG_DUMP
    pause
    cls
)
if %menu%==2 (
    call :DO_REG_PACK
    pause
    cls
)
if %menu%==3 (
    call :DO_VIM_PACK
    pause
    cls
)
if %menu%==4 (
    call :DO_VHD_MOUNT
    pause
    cls
)
if %menu%==5 (
    call :DO_VHD_UNMOUNT
    pause
    cls
)
if %menu%==6 (
    call :DO_VHD_MOUNT
    call :DO_VIM_COPY
    call :DO_VHD_UNMOUNT
    pause
    cls
)
if %menu%==7 (
    call :DO_VIM_PACK
    call :DO_VHD_MOUNT
    call :DO_VIM_COPY
    call :DO_VHD_UNMOUNT
    pause
    cls
)
if %menu%==8 (
    call :DO_REG_PACK
    call :DO_VIM_PACK
    call :DO_VHD_MOUNT
    call :DO_VIM_COPY
    call :DO_VHD_UNMOUNT
    pause
    cls
)
goto MENU
 
:DO_REG_DUMP
echo -----------------------------------------------------------
echo 正在导出注册表...
reg load HKLM\PE_DEFAULT "boot\windows\system32\config\DEFAULT"
reg load HKLM\PE_SOFTWARE "boot\windows\system32\config\SOFTWARE"
reg load HKLM\PE_SYSTEM "boot\windows\system32\config\SYSTEM"
reg export HKLM\PE_SYSTEM "boot\windows\system32\config\SYSTEM.reg" /y
reg export HKLM\PE_DEFAULT "boot\windows\system32\config\DEFAULT.reg" /y
reg export HKLM\PE_SOFTWARE "boot\windows\system32\config\SOFTWARE.reg" /y
reg unload HKLM\PE_DEFAULT
reg unload HKLM\PE_SOFTWARE 
reg unload HKLM\PE_SYSTEM 
echo 操作完成
echo -----------------------------------------------------------
exit /b 0
 
:DO_REG_PACK
echo -----------------------------------------------------------
echo 正在重建注册表...
copy /y boot\windows\system32\config\SAM boot\windows\system32\config\DEFAULT
copy /y boot\windows\system32\config\SAM boot\windows\system32\config\SOFTWARE
copy /y boot\windows\system32\config\SAM boot\windows\system32\config\SYSTEM
reg load HKLM\PE_DEFAULT "boot\windows\system32\config\DEFAULT"
reg load HKLM\PE_SOFTWARE "boot\windows\system32\config\SOFTWARE"
reg load HKLM\PE_SYSTEM "boot\windows\system32\config\SYSTEM"
reg import "boot\windows\system32\config\SYSTEM.reg"
reg import "boot\windows\system32\config\DEFAULT.reg"
reg import "boot\windows\system32\config\SOFTWARE.reg"
reg unload HKLM\PE_DEFAULT
reg unload HKLM\PE_SOFTWARE 
reg unload HKLM\PE_SYSTEM 
echo 操作完成
echo -----------------------------------------------------------
exit /b 0
 
:DO_VIM_PACK
echo -----------------------------------------------------------
echo 正在打包WIM......
bin\wimlib.exe capture boot boot.wim --boot --wimboot 
echo 操作完成
echo -----------------------------------------------------------
exit /b 0
 
:DO_VIM_COPY
echo -----------------------------------------------------------
echo 正在复制WIM到VHD...
xcopy boot.wim %WIM_PATH% /Y
echo 操作完成
echo -----------------------------------------------------------
exit /b 0
 
:DO_VHD_MOUNT
echo -----------------------------------------------------------
echo 正在挂载VHD......
diskpart /s bin\mount.txt
echo 操作完成
echo -----------------------------------------------------------
exit /b 0
 
:DO_VHD_UNMOUNT
echo -----------------------------------------------------------
echo 正在卸载VHD...
diskpart /s bin/unmount.txt
echo 操作完成
echo -----------------------------------------------------------
exit /b 0
使用说明:

主要功能是:自动生成WIM并复制到虚拟机磁盘
bin目录是打包工具
boot目录是winpe系统的根目录
 
使用前先修改脚本里面的环境变量:
1.VHD_PATH是虚拟机磁盘的路径
2.WIM_PATH是虚拟机磁盘挂载后,BOOT.WIM存放的路径
 
备注:
虚拟机磁盘根目录一般是如下结构:
/boot/bcd  (MBR引导的配置文件)
/boot/boot.wim (WinPE生成的系统镜像)
/efi/boot/bootx64.efi (UEFI引导程序)
/efi/microsoft/boot/bcd (UEFI引导和配置文件)
/bootmgr (MBR引导程序)
 
顺便把完整工具打包上传到CSDN,有兴趣的朋友可以下载测试。

https://download.csdn.net/download/qq446252221/16335038

 
————————————————
版权声明:本文为CSDN博主「星沉地动」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq446252221/article/details/115391941
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
本文地址:/aigaoji/65110.html

留言与评论(共有 0 条评论)
   
验证码:

潘少俊衡

| 桂ICP备2023010378号-4

Powered By EmpireCMS

爱享小站

中德益农

谷姐神农

环亚肥料

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

感谢潘少俊衡友情技术支持