• WINPE
  • 新手写的提取WinPE3.0代码

    作者:upzxt 文章来源:u盘装系统 发布时间:2012-08-22 01:01点击:

    新手写的提取WinPE3.0代码

    :: 本程序从 WINDOWS 7 安装光盘中提取并生成纯净的 Windows 7 PE 映像。

    :: 请将 WINDOWS 7 安装光盘放入光驱 J:,也可以将安装映像加载到虚拟光驱 J: 。

    :: 请预先将 imagex.exe 文件拷贝至 %SYSTEMDRIVE% 根目录。

    rem @echo off

    setlocal enabledelayedexpansion

    color 2e

    title 从 WINDOWS 7 安装光盘中提取 WinPE3.0 Code by Bootp.Lu
     
    :: 本代码开放源码,可随意拷贝使用。引用或改写时请保留上面一行中的作者信息。
     
    @echo.


    @echo 本程序从 WINDOWS 7 安装光盘中提取并生成纯净的 Windows 7 PE 映像。

    @echo.
     
    @echo 请将 WINDOWS 7 安装光盘放入光驱 J:,支持将映像加载到虚拟光驱 J: 。

    @echo.
     
    @echo 请预先将 imagex.exe 文件拷贝至 %SYSTEMDRIVE% 根目录。

    @echo.

    @echo Code by Bootp.Lu

    @echo.

    pause

    :: 一、准备

    set cdrom_disk=J:

    :: 如光驱盘符不是 J:,请按照实际情况修改上面一行内容。

    md %SYSTEMDRIVE%\_temp_mount

    md %SYSTEMDRIVE%\_temp_wim
     
    md %SYSTEMDRIVE%\_temp_wim\boot

    md %SYSTEMDRIVE%\_temp_wim\efi

    md %SYSTEMDRIVE%\_temp_wim\sources

    :: 二、用 WINDOWS 7 安装光盘中 %cdrom_disk%\sources\boot.wim 提取 Windows 7 PE 映像。

    :: 拷贝原文件和目录。
     
    copy %cdrom_disk%\sources\boot.wim %SYSTEMDRIVE%\_temp_wim\boot_c.wim

    copy %cdrom_disk%\bootmgr %SYSTEMDRIVE%\_temp_wim
     
    xcopy %cdrom_disk%\boot\*.* %SYSTEMDRIVE%\_temp_wim\boot /i /e /c /f /h /x /y

    xcopy %cdrom_disk%\efi\*.* %SYSTEMDRIVE%\_temp_wim\efi /i /e /c /f /h /x /y

    :: 拷贝%cdrom_disk%\sources\dism.exe,以备后续步骤使用。

    copy %cdrom_disk%\sources\dism.exe %SYSTEMDRIVE%\

    :: 从原镜像中提取纯净的 Windows 7 PE 映像。
     
    %SYSTEMDRIVE%\imagex /export %SYSTEMDRIVE%\_temp_wim\boot_c.wim 1 %SYSTEMDRIVE%\_temp_wim\sources\boot.wim

    del /f /q %SYSTEMDRIVE%\_temp_wim\boot_c.wim

    :: 三、修改映像,除掉冗余文件,删除原有的启动参数,输入新的启动参数。

    :: 解开映像供进一步修改。
     
    %SYSTEMDRIVE%\imagex /mountrw %SYSTEMDRIVE%\_temp_wim\sources\boot.wim 1 %SYSTEMDRIVE%\_temp_mount

    :: 修改映像

    if exist %SYSTEMDRIVE%\_temp_mount\setup.exe del /q /f %SYSTEMDRIVE%\_temp_mount\setup.exe
     
    if exist %SYSTEMDRIVE%\_temp_mount\Windows\System32\winpeshl.ini del /f /q %SYSTEMDRIVE%\_temp_mount\Windows\System32\winpeshl.ini

    :: 下面三行,定义PE和用户自己的程序的接口,如无,可在此三行删除。

    REM attrib -r -h -s %SYSTEMDRIVE%\_temp_mount\Windows\System32\startnet.cmd

    REM echo. >>%SYSTEMDRIVE%\_temp_mount\Windows\System32\startnet.cmd
     
    REM echo CALL C:\<MyPath>\MyProgram.bat >>%SYSTEMDRIVE%\_temp_mount\Windows\System32\startnet.cmd
     
    :: 清理无用的临时工作目录
     
    rd /s /q %SYSTEMDRIVE%\_temp_mount\sources

    :: 添加ImageX等工具。
     
    copy %SYSTEMDRIVE%\imagex.exe %SYSTEMDRIVE%\_temp_mount\Windows\System32\
     
    :: 重新封装,保存修改后的映像。
     
    %SYSTEMDRIVE%\imagex /unmount /commit %SYSTEMDRIVE%\_temp_mount
     
    :: 四、定义和部署映像

    :: 查看映像索引
     
    %SYSTEMDRIVE%\dism /get-wiminfo /wimfile:%SYSTEMDRIVE%\_temp_wim\sources\boot.wim
     
    :: 查看映像索引“1”的详细情况
     
    %SYSTEMDRIVE%\dism /get-wiminfo /wimfile:%SYSTEMDRIVE%\_temp_wim\sources\boot.wim /index:1
     
    :: 使用 DISM 将基本 Windows PE 映像装入 Mount 目录。完成后,可以看到mount目录下已经有了“解压”文件。
     
    %SYSTEMDRIVE%\dism /Mount-Wim /Wimfile:%SYSTEMDRIVE%\_temp_wim\sources\boot.wim /index:1 /MountDir:%SYSTEMDRIVE%\_temp_mount

    :: 使用带有 /GetPackages 选项的 DISM 命令查看当前映像中的所有程序包,验证这些程序包是否已安装。
     
    rem %SYSTEMDRIVE%\dism /image:%SYSTEMDRIVE%\_temp_mount /Get-Packages
     
    :: 使用具有以下语法的 /Set-AllIntl 选项设置默认语言。如果安装光盘是中文版WINDOWS 7,此行可忽略。
     
    rem %SYSTEMDRIVE%\dism /image:%SYSTEMDRIVE%\_temp_mount /Set-AllIntl:zh-cn
     
    :: 使用 /Get-Intl 选项验证语言设置。
     
    rem %SYSTEMDRIVE%\dism /image:%SYSTEMDRIVE%\_temp_mount /Get-Intl

    :: 修改暂存空间。该命令最后的256是代表256M的意思,默认WINPE只会分配32M暂存内存,有点小。
     
    %SYSTEMDRIVE%\dism /image:%SYSTEMDRIVE%\_temp_mount /Set-ScratchSpace:256

    :: 设定enable-profiling
     
    %SYSTEMDRIVE%\dism /image:%SYSTEMDRIVE%\_temp_mount /enable-profiling

    :: 设定磁盘上 Windows PE 映像的位置Set-TargetPath
     
    %SYSTEMDRIVE%\dism /image:%SYSTEMDRIVE%\_temp_mount /Set-TargetPath:C:\

    :: 提交对映像的更改。在此步骤中,将 DISM /unmount 选项和 /commit 选项一起使用提交对原始映像的更改。
     
    %SYSTEMDRIVE%\dism /unmount-Wim /MountDir:%SYSTEMDRIVE%\_temp_mount /Commit
     
    :: 执行完后,mount目录会被自动清空,相当于又“压缩”回去,此时可删除 _temp_mount 目录。
     
    rd /s /q %SYSTEMDRIVE%\_temp_mount
     
    @echo.
    @echo 预安装环境 Windows 7 PE 配置完成,文件保存在 %SYSTEMDRIVE%\_temp_wim 中。

    @echo.
    @echo 用一般的光盘刻录工具,就可以刻录成 Windows 7 PE 光盘备用。
     
    :: 五、创建 Windows 7 PE 的可引导光盘
     
    :: 创建可引导 CD-ROM。将 Windows PE RAM 盘放到 CD-ROM 上,需要使用 Oscdimg 工具创建 .iso 文件。
    :: 若要删除引导期间的“按任意键从 CD 启动……”提示,请删除 boot 文件夹下的 bootfix.bin 文件。
    :: 格式如下:
    :: oscdimg -n -m -o -b%SYSTEMDRIVE%\etfsboot.com %SYSTEMDRIVE%\_temp_wim %SYSTEMDRIVE%\winpe_x86_bootp.iso
     
    rem copy %SYSTEMDRIVE%\_temp_wim\boot\etfsboot.com %SYSTEMDRIVE%\
     
    rem %SYSTEMDRIVE%\oscdimg -n -m -o -b%SYSTEMDRIVE%\etfsboot.com %SYSTEMDRIVE%\_temp_wim %SYSTEMDRIVE%\winpe_x86_bootp.iso
     
    :: 此处跳过 ISO 文件的生成。如不想跳过,除掉上面两行代码前的 rem 即可。
     
    :: ISO映像主要是刻写 WinPE 光盘用,如需生成ISO文件,需要微软的 oscdimg.exe 小文件。

    :: 六、清理
     
    rem del /f /q %SYSTEMDRIVE%\etfsboot.com
     
    del /f /q %SYSTEMDRIVE%\dism.exe
     
    @echo.
    @echo.
    @echo 纯净的原生态 Windows 7 PE 3.0 制作完毕。 Code by Bootp.Lu
    @echo --------------------------------------------------------------
    @echo.

    @echo.
    @echo.
    @echo 后续步骤可以把 Windows 7 PE 安装到系统盘 C: 上,并以硬盘方式启动预安装环境。

    @echo.
    @echo.
    pause


    U盘装系统


    (责任编辑:www.upzxt.com)