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

在制作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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值