无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 19252|回复: 33
打印 上一主题 下一主题

[分享] UEFI+GPT分区、引导修复、安装备份、映像集成整理与定制封装工具包

    [复制链接]
跳转到指定楼层
1#
发表于 2013-11-24 19:51:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 2011htpcfans 于 2014-4-28 20:49 编辑

详细使用说明请等我有空补上,请再等等,每天忙得都坐不下来!!!!!

附件 20140428再次更新!

献给需要的人,并不是每个人都喜欢的!

帖子超过长度要求,又要分楼了,剩余内容在20楼。

优先提示:1、涉及Ghost操作,需要Ghost.exe与本批处理同目录;2、涉及PE安装,请先看源代码;
                3、涉及引导菜单,只对Bootmgr管理的菜单有效。4、分区处理千万小心!


@echo off&mode con cols=90
title pwDD_Marc倾力提供
color 0a
setlocal enabledelayedexpansion
echo.
echo.
echo ^>^>^>       DiskPart-Dism-Boot-BCD-PE-SysPrep-小型工具包      ^<^<^<
echo.
@echo ---------------------------------------------------------------------------
rd %systemdrive%\users\Dir_Test>nul 2>nul
md %systemdrive%\users\Dir_Test>nul 2>nul||(Echo 请使用右键管理员身份运行&&Pause >nul&&Exit)
rd %systemdrive%\users\Dir_Test>nul 2>nul

echo 任务开始时间是%time:~,2%点%time:~3,2%分%time:~6,2%秒
echo.
set /a Tday=0
set "T1=%time%"

echo 需要用到Dism、Diskpart、BCDBoot、BootSect和Find命令,如果不支持请现在退出!
echo.

::取得当前目录控制权,解决访问被拒的问题,PE可能不支持两条命令,要报错,后续无影响!
set bIcacls=n
set /p bIcacls=是否需要取得当前目录的所有权,默认不需要,PE中不需要,需要输入小写y----
if  !bIcacls!==y takeown /f %~dp0 /r /d y>nul 2>nul&&echo y|icacls %~dp0 /t /q /grant %username%:f>nul 2>nul
if  !bIcacls!==y icacls %~dp0common /remove:d administrator /t >null
:op
cls
echo      ╔┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╗
echo      ┋  任务类型 1: Dism应用映像安装系统。                            ┋
echo      ┋                                                                ┋
echo      ┋  任务类型 2: Dism捕获映像备份系统。                            ┋
echo      ┋                                                                ┋
echo      ┋  任务类型 3: Dism导出映像整理文件。                            ┋
echo      ┋                                                                ┋
echo      ┋  任务类型 4: BCDBoot、BootSect常规引导修复重建。               ┋
echo      ┋                                                                ┋
echo      ┋  任务类型 5: Diskpart磁盘分区。                                ┋
echo      ┋                                                                ┋
echo      ┋  任务类型 6: 为卷(某分区如ESP)分配装载或删除盘符。             ┋
echo      ┋                                                                ┋
echo      ┋  任务类型 7: 在某目录中新建定容vhd虚拟磁盘文件,同时装载。     ┋
echo      ┋                                                                ┋
echo      ┋  任务类型 8: 装载或卸载指定虚拟磁盘文件。                      ┋
echo      ┋                                                                ┋
echo      ┋  任务类型 9: 全新硬盘分区与Dism安装系统一条龙。                ┋
echo      ┋                                                                ┋
echo      ┋  任务类型10: 全新硬盘分区与Ghost安装系统一条龙。               ┋
echo      ┋                                                                ┋
echo      ┋  任务类型11: Ghost分区备份与恢复安装。                         ┋
echo      ┋                                                                ┋
echo      ┋  任务类型12: 将本PE安装于本地硬盘EFI/MBR中独立引导分区。       ┋
echo      ┋                                                                ┋
echo      ┋  任务类型13: 系统集成与功能调整。                              ┋
echo      ┋                                                                ┋
echo      ┋  任务类型14: SysPrep封装Win8.1/8/7 x64 x86系统。               ┋
echo      ┋                                                                ┋
echo      ┋  任务类型15: 为Win8.1/8/7 x64 x86系统添加引导菜单项。          ┋
echo      ┋                                                                ┋
echo      ┋  任务类型16: 删除Win8.1/8/7 x64 x86系统引导菜单项。            ┋
echo      ┋                                                                ┋
echo      ╚┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╝

echo list vol>%temp%\DiskPart.txt
diskpart /s %temp%\DiskPart.txt

echo.
set    OpChoice=0
set /p OpChoice=请选则任务类型,输入有效序号----
echo.

if !OpChoice!==1 (
   set /a a=0
   set /a CountWim=0
   set /a NumWimSource=0
   set /a CountIndex=0
   set /a IndexSource=0
   echo.
   set    bBootNeed=y
   set /p bBootNeed=是否同时建立引导项,默认是y,直接回车/不要输入小写n----
   if not !bBootNeed!==n (
      echo.
      set    bIsUEFI=y
      set /p bIsUEFI=请问是否UEFI引导,默认是,直接回车/不是请输入小写n----
      if  !bIsUEFI!==y (
         ::为ESP分区分配盘符,为减少标号减少goto,要扫描所有可用盘符,效率稍低!
         set bHvSetESP=n
         for %%i in (z y x w v u t s r q p o n m) do (
            if !bHvSetESP!==n ( if  not exist %%i: set Label_ESP=%%i&&set bHvSetESP=y )
         )
         echo list vol>%temp%\DiskPart.txt
         diskpart /s %temp%\DiskPart.txt
         set /p NumVolESP=请输入GPT中ESP分区的卷编号,直接回车----
         echo select vol !NumVolESP!>%temp%\DiskPart.txt
         echo remove>>%temp%\DiskPart.txt
         echo assign letter=!Label_ESP!>>%temp%\DiskPart.txt
         diskpart /s %temp%\DiskPart.txt
      )
      if  !bIsUEFI!==n (
         echo.
         set    bHvMSR=y
         set /p bHvMSR=请问是否有独立引导分区,默认有,直接回车/没有输入小写n----
         if !bHvMSR!==y (
            echo.
            set bHvLab=n
            set /p bHvLab=请确认独立引导分区是否已有盘符,有输入y,默认没有n,直接回车----
            echo.
            if  !bHvLab!==y (
               set /p Label_ESP=请输入独立引导分区盘符,我不检测无效盘符噢----
            )
            if  not !bHvLab!==y (
               ::为MBR中独立引导分区分配盘符,为减少标号减少goto,要扫描所有可用盘符,效率稍低!
               set bHvSetESP=n
               for %%i in (z y x w v u t s r q p o n m) do (
                  if !bHvSetESP!==n ( if  not exist %%i: set Label_ESP=%%i&&set bHvSetESP=y )
               )
               echo list vol>%temp%\DiskPart.txt
               diskpart /s %temp%\DiskPart.txt
               set /p NumVolESP=请输入MBR中独立引导分区的卷编号,直接回车----
               echo select vol !NumVolESP!>%temp%\DiskPart.txt
               echo assign letter=!Label_ESP!>>%temp%\DiskPart.txt
               diskpart /s %temp%\DiskPart.txt
            )
         )
      )
   )
   echo list vol>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt
   echo.
   set bHvSetSYS=n
   for /l %%i in (1,1,5) do (
      if !bHvSetSYS!==n (
         set /p Label_SYS=请问系统要安装在哪个盘,我不检测无效盘符噢----
         if not exist !Label_SYS!: echo 你输入的盘符是什么东西,根本不存在吗!
         if     exist !Label_SYS!: set bHvSetSYS=y
      )
   )

   if not !bBootNeed!==n ( if !bIsUEFI!==n (  if !bHvMSR!==n  ( set Label_ESP=!Label_SYS!)))
   echo.
   ::准备源系统映像文件与索引序号。
   set bHvLSr=n
   for /l %%i in (1,1,5) do (
      if !bHvLSr!==n (
         set /p LPartSource=请输入系统映像源文件所在盘,不带冒号----
         if not exist !LPartSource!: echo 这个盘符根本就没有使用了,你不要搞笑好吧
         if     exist !LPartSource!: set bHvLSr=y
      )
   )
   dir !LPartSource!:\*.wim /b /s >%temp%\fSeek.txt
   echo 查找到!LPartSource!分区下所有映像文件如下表
   echo -----------------------------------------------------
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do ( set /a a+=1&&echo 系统映像:!a! %%i)
   set /a CountWim=!a!
   if !a!==0   echo 该分区无系统映像文件,退出重来吧!&&goto End

   ::准备全局临时文件夹\tmp_Imagex,预备以后作为ScratchDir使用
   if not exist !LPartSource!:\tmp_Imagex md !LPartSource!:\tmp_Imagex
   if     exist !LPartSource!:\tmp_Imagex    rd /s /q  !LPartSource!:\tmp_Imagex&&md !LPartSource!:\tmp_Imagex

   echo.
   set /p NumWimSource=请输入系统映像文件序号,我不检测无效序号,不带冒号----
   set bVldNSr=n
   for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
   if !bVldNSr!==n echo 你没有输入有效系统映像文件序号,退出重来吧!&&goto End

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
      set /a a+=1
      if !NumWimSource!==!a! Dism /get-imageinfo /imagefile:%%i
   )

   echo.
   set /p IndexSource=请输入系统映像索引序号,我不检测无效序号,不带冒号----
   vol !Label_SYS!:
   echo.
   echo 格式化!Label_SYS!盘,请核对分区对否,慎重,别破坏数据。
   echo.
   pause
   format !Label_SYS!: /q /x /u /y /fs:ntfs /a:4096 /v:WSYS

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
      set /a a+=1
      if !a!==!NumWimSource! Dism /Apply-Image /ImageFile:"%%i" /Index:!IndexSource! /ApplyDir:!Label_SYS!:\ /Scratchdir:!LPartSource!:\tmp_Imagex
   )

   if not !bBootNeed!==n (
      if not !bIsUEFI!==n  %windir%\system32\bcdboot !Label_SYS!:\windows /s !Label_ESP!: /f uefi /l zh-cn
      if     !bIsUEFI!==n (
         if not exist !Label_SYS!:\bootmgr  %windir%\system32\bootsect.exe /nt52 all /force /mbr
         if     exist !Label_SYS!:\bootmgr  (
            %windir%\system32\bootsect.exe /nt60 all /force /mbr
            %windir%\system32\bcdboot !Label_SYS!:\windows /s !Label_ESP!: /f bios /l zh-cn
         )
      )
   )
   rd /s /q  !LPartSource!:\tmp_Imagex
   goto End
)

if !OpChoice!==2 (
   set /a a=0
   set /a CountWim=0
   set /a NumWimDest=0
   set NameImage=null

   set bHvLSYS=n
   for /l %%i in (1,1,5) do (
      if !bHvLSYS!==n (
         set /p LabelCapture=请输入要捕获系统的分区盘符,不带冒号----
         if not exist !LabelCapture!: echo 你输入的盘符是什么东西,根本不存在吗!请重新输入!
         if     exist !LabelCapture!: set bHvLSYS=y
      )
   )
   echo.
   set    b7Sysprep=n
   set /p b7Sysprep=请问是不是制作Win7预封装部署系统(删除Administrator账号),默认不是,是请输入小写y----
   if !b7Sysprep!==y rd /s /q !LabelCapture!:\users\Administrator
   echo.
   set /p NameInput=请输入要捕获制作映像的名字,不要带空格等奇怪的字符----
   :: 格式化映像名字,以下划线代替空格
   set /a a=0
   for %%i in ( !NameInput! ) do (
      set /a a+=1
      if !a!==1 set NameImage=%%i
      if not !a!==1 set NameImage=!NameImage!_%%i
   )

   echo.
   set    bCaptureAppend=y
   set /p bCaptureAppend=是否增量捕获在其它映像文件中,默认是y,直接回车,不是输入小写n----
   echo.
   if not !bCaptureAppend!==n (
      set bHvLDst=n
      for /l %%i in (1,1,5) do (
         if !bHvLDst!==n (
            set /p LPartDest=请输入系统映像文件所在盘,不带冒号----
            if not exist !LPartDest!: echo 这个盘符根本就没有使用了,你不要搞笑好吧!
            if     exist !LPartDest!: set bHvLDst=y
         )
      )
      dir !LPartDest!:\*.wim /b /s >%temp%\fSeek.txt
      echo 查找到!LPartDest!分区下所有映像文件如下表
      echo -----------------------------------------------------
      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do ( set /a a+=1&&echo 系统映像:!a! %%i)
      set /a CountWim=!a!
      if !a!==0   echo 该分区无系统映像文件,退出重来吧!&&goto End

      if not exist !LPartDest!:\tmp_Imagex md !LPartDest!:\tmp_Imagex
      if     exist !LPartDest!:\tmp_Imagex rd /s /q  !LPartDest!:\tmp_Imagex&&md !LPartDest!:\tmp_Imagex

      echo.
      set /p NumWimDest=请输入系统映像文件序号,不带冒号----
      set bVldDst=n
      for /l %%i in (1,1,!CountWim!) do (
         if !NumWimDest!==%%i set bVldDst=y
      )
      if !bVldDst!==n echo 你没有输入有效系统映像文件序号,退出重来吧!&&goto End

      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
         set /a a+=1
         if !NumWimDest!==!a! Dism /Append-Image /ImageFile:"%%i"  /CaptureDir:!LabelCapture!:\  /Name:!NameImage! /Scratchdir:!LPartDest!:\tmp_Imagex
      )
      rd /s /q  !LPartDest!:\tmp_Imagex
      goto End   
   )
   echo.
   if  !bCaptureAppend!==n (
      set bHvLDst=n
      for /l %%i in (1,1,5) do (
         if !bHvLDst!==n (
            set /p LDstPart=请输入新作映像文件要放置分区的盘符,不带冒号----
            if not exist !LDstPart!:   echo 你输入的盘符是什么东西,根本不存在吗!请重新输入!
            if     exist !LDstPart!: set bHvLDst=y
         )
      )
      if not exist !LDstPart!:\tmp_Imagex md !LDstPart!:\tmp_Imagex
      if     exist !LDstPart!:\tmp_Imagex rd /s /q  !LDstPart!:\tmp_Imagex&&md !LDstPart!:\tmp_Imagex
      Dism /Capture-Image /ImageFile:!LDstPart!:\!NameImage!.wim  /CaptureDir:!LabelCapture!:\  /Name:!NameImage! /compress:max /Scratchdir:!LDstPart!:\tmp_Imagex
      rd /s /q  !LDstPart!:\tmp_Imagex
      goto End
   )
)

if !OpChoice!==3 (
   ::准备全局变量
   set /a a=0
   set /a CountWim=0
   set /a CountIndex=0
   set /a NumWimSource=0
   set /a IndexSource=0
   set /a NumWimDest=0
   set    NameImage=null

   ::准备源系统映像文件与索引序号。
   set bHvLSr=n
   for /l %%i in (1,1,5) do (
      if !bHvLSr!==n (
         set /p LPartSource=请输入系统映像源文件所在盘,不带冒号----
         if not exist !LPartSource!: echo 这个盘符根本就没有使用了,你不要搞笑好吧
         if     exist !LPartSource!: set bHvLSr=y
      )
   )
   dir !LPartSource!:\*.wim /b /s >%temp%\fSrSeek.txt
   echo 查找到!LPartSource!分区下所有映像文件如下表
   echo -----------------------------------------------------
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSrSeek.txt) do ( set /a a+=1&&echo 系统映像:!a! %%i)
   set /a CountWim=!a!
   if !a!==0   echo 该分区无系统映像文件,退出重来吧!&&goto End


   ::准备全局临时文件夹\tmp_Imagex,预备以后作为ScratchDir使用
   if not exist !LPartSource!:\tmp_Imagex md !LPartSource!:\tmp_Imagex
   if     exist !LPartSource!:\tmp_Imagex rd /s /q  !LPartSource!:\tmp_Imagex&&md !LPartSource!:\tmp_Imagex

   echo.
   set /p NumWimSource=请输入系统映像源文件序号,不带冒号----
   set bVldNSr=n
   for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
   if !bVldNSr!==n echo 你没有输入有效系统映像文件序号,退出重来吧!&&goto End

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSrSeek.txt) do (
      set /a a+=1
      if !NumWimSource!==!a! Dism /get-imageinfo /imagefile:%%i
   )

   echo.
   set /p IndexSource=请输入系统映像索引序号,不带冒号----

   echo.
   set    bExportAppend=y
   set /p bExportAppend=是否导出在其它映像文件中,默认是y,直接回车,不是输入小写n----
   echo.

   if not !bExportAppend!==n (
      set bHvLDst=n
      for /l %%i in (1,1,5) do (
         if !bHvLDst!==n (
            set /p LPartDest=请输入系统映像导出目标文件所在盘,不带冒号----
            if not exist !LPartDest!: echo 这个盘符根本就没有使用了,你不要搞笑好吧!
            if     exist !LPartDest!: set bHvLDst=y
         )
      )
      dir !LPartDest!:\*.wim /b /s >%temp%\fDsSeek.txt
      echo 查找到!LPartDest!分区下所有映像文件如下表
      echo -----------------------------------------------------
      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\fDsSeek.txt) do ( set /a a+=1&&echo 系统映像:!a! %%i)
      set /a CountWim=!a!
      if !a!==0   echo 该分区无系统映像文件,退出重来吧!&&goto End

      echo.
      set /p NumWimDest=请输入系统映像目标文件序号,不带冒号----
      set bVldDst=n
      for /l %%i in (1,1,!CountWim!) do (
         if !NumWimDest!==%%i set bVldDst=y
      )
      if !bVldDst!==n echo 你没有输入有效系统映像文件序号,退出重来吧!&&goto End

       set /a a=0
       set /a b=0
       for /f "usebackq delims=" %%i in (%temp%\fDsSeek.txt) do (
          set /a a+=1
          if !NumWimDest!==!a! (
            set /a b=0
            for /f "usebackq delims=" %%j in (%temp%\fSrSeek.txt) do (
               set /a b+=1         
               if !NumWimSource!==!b! (
                  if %%i==%%j echo 导出到原文件中,算了吧!&&goto End
                  dism /Export-Image /SourceImageFile:"%%j"  /SourceIndex:!IndexSource! /DestinationImageFile:"%%i" /Scratchdir:!LPartSource!:\tmp_Imagex
               )
            )
          )
       )
       rd /s /q  !LPartSource!:\tmp_Imagex
       goto End   
   )

   echo.
   if  !bExportAppend!==n (
      set bHvLDst=n
      for /l %%i in (1,1,5) do (
         if !bHvLDst!==n (
            set /p LPartNewDest=请问全新映像文件放哪个盘,不带冒号----
            if not exist !LPartNewDest!: echo 这个盘符根本就没有使用了,你不要搞笑好吧!
            if     exist !LPartNewDest!: set bHvLDst=y
         )
      )
      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\fSrSeek.txt) do (
         set /a a+=1
         if !NumWimSource!==!a! (
            Dism /get-imageinfo /imagefile:%%i /Index:!IndexSource! >%temp%\ImageInfo.txt
            find "名称" %temp%\imageinfo.txt>%temp%\tmp.txt
            for /f  "skip=2 tokens=1,* delims= "  %%j in (%temp%\tmp.txt) do (  set NameTmp=%%k)
            :: 格式化映像名字,以下划线代替空格,微软原始映像中老多空格,真没办法!
            set /a b=0
            for %%j in ( !NameTmp! ) do (
               set /a b+=1
               if !b!==1 set NameImage=%%j
               if not !b!==1 set NameImage=!NameImage!_%%j
            )
            dism /Export-Image /SourceImageFile:"%%i"  /SourceIndex:!IndexSource! /DestinationImageFile:"!LPartNewDest!:\!NameImage!.wim" /compress:max /Scratchdir:!LPartSource!:\tmp_Imagex
         )
      )
      rd /s /q  !LPartSource!:\tmp_Imagex
      goto End
   )
)

if !OpChoice!==4 (
   set    bIsUEFI=y
   set /p bIsUEFI=请问是否UEFI引导,默认是,直接回车/不是请输入小写n----
   if  not !bIsUEFI!==n (
      ::为ESP分区分配盘符,为减少标号减少goto,要扫描所有可用盘符,效率稍低!
      set bHvSetESP=n
      for %%i in (z y x w v u t s r q p o n m) do (
         if !bHvSetESP!==n ( if  not exist %%i: set Label_ESP=%%i&&set bHvSetESP=y )
      )
      echo list vol>%temp%\DiskPart.txt
      diskpart /s %temp%\DiskPart.txt
      echo.
      set /p NumVolESP=请输入GPT中ESP分区的卷编号,直接回车----
      echo select vol !NumVolESP!>%temp%\DiskPart.txt
      echo remove>>%temp%\DiskPart.txt
      echo assign letter=!Label_ESP!>>%temp%\DiskPart.txt
      diskpart /s %temp%\DiskPart.txt
   )
   if  !bIsUEFI!==n (
      echo.
      set    bHvMSR=y
      set /p bHvMSR=请问是否有独立引导分区,默认有,直接回车/没有输入小写n----
      if !bHvMSR!==y (
         echo.
         set bHvLab=n
         set /p bHvLab=请问MBR中独立引导分区是否已有盘符,有输入y,默认没有n,直接回车----
         if  !bHvLab!==y (
            echo.
            set /p Label_ESP=请输入MBR中独立引导分区盘符,我不检测无效盘符噢----
         )
         if  not !bHvLab!==y (
            ::为MBR中独立引导分区分配盘符,为减少标号减少goto,要扫描所有可用盘符,效率稍低!
            echo.
            set bHvSetESP=n
            for %%i in (z y x w v u t s r q p o n m) do (
               if !bHvSetESP!==n ( if  not exist %%i: set Label_ESP=%%i&&set bHvSetESP=y )
            )
            echo list vol>%temp%\DiskPart.txt
            diskpart /s %temp%\DiskPart.txt

            echo.
            set /p NumVolESP=请输MBR中独立引导分区的卷编号,直接回车----
            echo select vol !NumVolESP!>%temp%\DiskPart.txt
            echo assign letter=!Label_ESP!>>%temp%\DiskPart.txt
            diskpart /s %temp%\DiskPart.txt
         )
      )
   )

   echo.
   set bHvLSYS=n
   for /l %%i in (1,1,5) do (
      if !bHvLSYS!==n (
         set /p Label_SYS=请输入系统盘符,我不检测无效盘符噢----
         if not exist !Label_SYS!: echo 你输入的盘符是什么东西,根本不存在吗!
         if     exist !Label_SYS!: (
            if not exist !Label_SYS!:\windows\ echo 你输入了盘符,但里面没系统!
            if     exist !Label_SYS!:\windows\ set bHvLSYS=y
         )
      )
   )
   if !bIsUEFI!==n (  if !bHvMSR!==n  ( set Label_ESP=!Label_SYS!))
   if not !bIsUEFI!==n  %windir%\system32\bcdboot !Label_SYS!:\windows /s !Label_ESP!: /f UEFI /l zh-cn /addlast
   if     !bIsUEFI!==n (
      if not exist !Label_SYS!:\bootmgr  %windir%\system32\bootsect.exe /nt52 all /force /mbr
      if     exist !Label_SYS!:\bootmgr  (
         %windir%\system32\bootsect.exe /nt60 all /force /mbr
         %windir%\system32\bcdboot !Label_SYS!:\windows /s !Label_ESP!: /f BIOS /l zh-cn /addlast
      )
   )
   goto End
)

if !OpChoice!==5 (
   echo.
   echo GPT中EFI分区、MBR中独立引导分区容量1000M,GPT中msr分区容量400M!
   echo MBR中先分第一、二基本分区,再从二区末尾缩减1000M,用于最后的独立引导分区!
   echo 第一分区容量80G,可自行输入;控制分区容量,防止最后引导分区容量不够,出错!
   echo list disk>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt

   echo.
   set    choiceDisk=0
   set /p choiceDisk=请输入要操作的磁盘编号,从0起编,默认第0磁盘,直接回车----
   echo.
   set    bPart_GPT=y
   set /p bPart_GPT=请问是否进行GPT分区,默认是,直接回车/不是请输入小写n----

   echo select disk !choiceDisk!>%temp%\DiskPart.txt
   echo detail disk>>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt

   echo.
   set    SizeEFI=1000
   set /p SizeEFI=输入EFI或者MBR中独立引导分区容量,单位M,默认1000,直接回车----

   echo.
   set    SizePartition=80000
   set /p SizePartition=输入第一基本分区容量,剩余为第二分区,默认80G,直接回车,单位M----
   echo select disk !choiceDisk!>%temp%\DiskPart.txt
   echo clean>>%temp%\DiskPart.txt
   if not !bPart_GPT!==n (
      echo convert gpt>>%temp%\DiskPart.txt
      echo create partition efi size=!SizeEFI!  offset=1024>>%temp%\DiskPart.txt
      echo format fs=fat32 quick>>%temp%\DiskPart.txt

      echo create partition msr size=400>>%temp%\DiskPart.txt

      echo create partition primary size=!SizePartition!>>%temp%\DiskPart.txt
      echo format fs=ntfs quick>>%temp%\DiskPart.txt
      ::可在此预先指定盘符
      echo assign>>%temp%\DiskPart.txt
   )

   if !bPart_GPT!==n (
      echo create partition primary size=!SizePartition! offset=1024>>%temp%\DiskPart.txt
      echo format fs=ntfs quick>>%temp%\DiskPart.txt
      ::可在此预先指定盘符
      echo assign>>%temp%\DiskPart.txt
   )

   echo create partition primary>>%temp%\DiskPart.txt
   echo format fs=ntfs quick>>%temp%\DiskPart.txt
   ::可在此预先指定盘符
   echo assign>>%temp%\DiskPart.txt

   if !bPart_GPT!==n (
      ::echo select part 2 >>%temp%\DiskPart.txt
      echo shrink desired=!SizeEFI! minimum=300>>%temp%\DiskPart.txt
  
      echo create partition primary>>%temp%\DiskPart.txt
      echo format fs=ntfs quick>>%temp%\DiskPart.txt
      ::可在此预先指定盘符
      echo assign>>%temp%\DiskPart.txt
      echo active>>%temp%\DiskPart.txt  
   )

   echo list partition>>%temp%\DiskPart.txt

   echo.
   ::可在此加暂停,在本批处理目录查看DiskPart.txt内容,还可手动改盘符,保存后生效
   set /p bProceed=你选择对磁盘^<!choiceDisk!^>进行分区操作,请确认是否继续,是y,非n---
   if not !bProceed!==y exit
   diskpart /s %temp%\DiskPart.txt
   goto End
)

if !OpChoice!==6 (
   echo.
   set bHvSetESP=n
   for %%i in (z y x w v u t s r q p o n m) do (
      if !bHvSetESP!==n ( if  not exist %%i: set Label_ESP=%%i&&set bHvSetESP=y )
   )
   echo list vol>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt
   echo 要为某卷分配随机盘符,那我认为此卷没有盘符,如果已有,执行报错!
   echo.
   set /p NumVolESP=请输入要分配盘符或卸载盘符分区的卷编号,直接回车----

   echo.
   set    bAssign=y
   set /p bAssign=请问是要分配装载盘符y还是删除盘符n,默认分配装载----
   echo select vol !NumVolESP!>%temp%\DiskPart.txt

   if not !bAssign!==n (
      echo assign letter=!Label_ESP!>>%temp%\DiskPart.txt
      diskpart /s %temp%\DiskPart.txt
   )
   if !bAssign!==n (
      echo remove>>%temp%\DiskPart.txt
      diskpart /s %temp%\DiskPart.txt
   )
   goto End
)

if !OpChoice!==7 (
   echo.
   set /p fileVhd=请输入要创建的固定容量vhd文件名(加完整路径,示例:e:\backup\x.vhd)---
   echo.
   set /p SizePartition_Op4_P1=输入要创建的vhd文件容量,单位M----
   echo create vdisk file="!fileVhd!" maximum=!SizePartition_Op4_P1! type=fixed>%temp%\DiskPart.txt
   echo select vdisk file="!fileVhd!">>%temp%\DiskPart.txt
   echo attach vdisk>>%temp%\DiskPart.txt
   ::默认偏移量1024K。
   echo create part pri offset=1024>>%temp%\DiskPart.txt
   echo format fs=ntfs quick>>%temp%\DiskPart.txt
   ::可在此预先指定盘符,为建立引导项打基础,建立引导项应该比较Easy了。
   echo assign>>%temp%\DiskPart.txt
   echo list partition>>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt
   goto End
)

if !OpChoice!==8 (
   echo.
   ::准备VHD系统映像文件与序号。
   set bHvLSr=n
   for /l %%i in (1,1,5) do (
      if !bHvLSr!==n (
         set /p LPartSource=请输入VHD系统映像文件所在盘,不带冒号----
         if not exist !LPartSource!: echo 这个盘符根本就没有使用了,你不要搞笑好吧
         if     exist !LPartSource!: set bHvLSr=y
      )
   )
   dir !LPartSource!:\*.vhd /b /s >%temp%\fSeek.txt
   echo 查找到!LPartSource!分区下所有映像文件如下表
   echo -----------------------------------------------------
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do ( set /a a+=1&&echo 系统映像:!a! %%i)
   set /a CountWim=!a!
   if !a!==0   echo 该分区无系统映像文件,退出重来吧!&&goto End

   echo.
   set    NumWimSource=1
   set /p NumWimSource=请输入系统映像文件序号,我不检测无效序号,不带冒号,默认1----
   set bVldNSr=n
   for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
   if !bVldNSr!==n echo 你没有输入有效系统映像文件序号,退出重来吧!&&goto End

   echo.
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
      set /a a+=1
      if !a!==!NumWimSource! (

         echo 你选择的VHD系统映像文件是:%%i
         echo.
         set    bAttach_Detach=y
         set /p bAttach_Detach=请问是装载还是卸载,默认装载y,卸载n----
         echo select vdisk file="%%i">%temp%\DiskPart.txt
         if !bAttach_Detach!==y (
            echo attach vdisk>>%temp%\DiskPart.txt
            echo exit>>%temp%\DiskPart.txt
            diskpart /s %temp%\DiskPart.txt
            goto End
          )
         if !bAttach_Detach!==n (
           echo detach vdisk>>%temp%\DiskPart.txt
           diskpart /s %temp%\DiskPart.txt
           goto End
         )
      )
   )
)
if !OpChoice!==9 (
   echo list disk>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt

   set /a CountDisk=0
   set /a CountPart=0
   set    NumDisk=0
   set    NumPart=0
   set    bVldNum=n
   set    NumVol=0

   set /a a=0
   set /a CountWim=0
   set /a NumWimSource=0
   set /a CountIndex=0
   set /a IndexSource=0

   echo list disk>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt>%temp%\Out_DiskPart.txt
   find /i "磁盘" %temp%\Out_DiskPart.txt>%temp%\Out_tmp.txt
   for /f "skip=2 tokens=2 delims= " %%i in (%temp%\Out_tmp.txt) do (set /a CountDisk=%%i)
   echo -----------------------------------------------------
   for /l %%i in (1,1,5) do (
      if !bVldNum!==n (set /p  NumDisk=请输入要安装系统的目标磁盘编号,从0起编,默认第0块磁盘----)
      for /l %%j in (0,1,!CountDisk!) do (
         if !NumDisk!==%%j set bVldNum=y
      )
   )
   if !bVldNum!==n (echo 磁盘编号5次都输错,算了退出吧!&&exit)
   echo.
   echo GPT中EFI分区、MBR中独立引导分区容量1000M,GPT中msr分区容量400M!
   echo MBR中先分第一、二基本分区,再从二区末尾缩减1000M,用于最后的独立引导分区!
   echo 第一分区容量80G,可自行输入;控制分区容量,防止最后引导分区容量不够,出错!
   echo -----------------------------------------------------
   set    bPart_GPT=y
   set /p bPart_GPT=请问是否进行GPT分区,不是请输入小写n,默认是,直接回车----
   echo.
   set    SizeEFI=1000
   set /p SizeEFI=输入EFI或者MBR中独立引导分区容量,单位M,默认1000,直接回车----
   echo.
   set    SizePartition=80000
   set /p SizePartition=输入第一基本分区容量,单位M,默认80G,直接回车----

   set bHvSetESP=n
   for %%i in (z y x w v u t s r q p o n m) do (
      if !bHvSetESP!==n ( if  not exist %%i: set Label_ESP=%%i&&set bHvSetESP=y )
   )

   echo select disk !NumDisk!>%temp%\DiskPart.txt
   echo clean>>%temp%\DiskPart.txt

   if not !bPart_GPT!==n (
      echo convert gpt>>%temp%\DiskPart.txt
      echo create partition efi size=!SizeEFI!  offset=1024>>%temp%\DiskPart.txt
      echo format fs=fat32 quick>>%temp%\DiskPart.txt
      echo assign letter=!Label_ESP!>>%temp%\DiskPart.txt   
      echo create partition msr size=400>>%temp%\DiskPart.txt

      echo create partition primary size=!SizePartition!>>%temp%\DiskPart.txt
      echo format fs=ntfs quick>>%temp%\DiskPart.txt
      echo assign>>%temp%\DiskPart.txt
   )
   if !bPart_GPT!==n (
      echo create partition primary size=!SizePartition! offset=1024>>%temp%\DiskPart.txt
      echo format fs=ntfs quick>>%temp%\DiskPart.txt
      echo assign>>%temp%\DiskPart.txt
   )

   echo create partition primary>>%temp%\DiskPart.txt
   echo format fs=ntfs quick>>%temp%\DiskPart.txt
   echo assign>>%temp%\DiskPart.txt

   if !bPart_GPT!==n (
      ::echo select part 2 >>%temp%\DiskPart.txt
      echo shrink desired=!SizeEFI! minimum=300>>%temp%\DiskPart.txt

      echo create partition primary>>%temp%\DiskPart.txt
      echo format fs=ntfs quick>>%temp%\DiskPart.txt
      ::可在此预先指定盘符
      echo assign letter=!Label_ESP!>>%temp%\DiskPart.txt
      echo active>>%temp%\DiskPart.txt  
   )

   echo list partition>>%temp%\DiskPart.txt
   ::暂停等待输入,在此查看DiskPart.txt内容,保存后生效
   echo.
   set    bProceed=y
   set /p bProceed=你选择对磁盘^<!NumDisk!^>进行分区操作,不分区n,默认分y,直接回车---
   if not !bProceed!==y exit
   diskpart /s %temp%\DiskPart.txt

   echo list vol>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt

   echo.
   set /p NumVolESP=请输入GPT中ESP分区或MBR中独立引导分区的卷编号,然后回车----
   echo.
   ::现在准备指定要安装系统分区,请看盘符信息。
   set bHvSYS=n
   for /l %%i in (1,1,5) do (
      if !bHvSYS!==n (
         set /p LabSYS=请输入要安装系统分区盘符,不带冒号,然后回车----
         if not exist !LabSYS!: echo 你输入的盘符是什么东西,根本不存在吗?
         if     exist !LabSYS!: set bHvSYS=y
      )
   )
   echo.
   echo 现在准备把映像wim文件复制到本地磁盘另外一个分区中,请看盘符信息。
   echo.
   ::指定系统映像源文件本地磁盘放置分区。
   set bHvLabSr=n
   for /l %%i in (1,1,5) do (
      if !bHvLabSr!==n (
         set /p LabelSr=请输入要放置映像wim文件的盘符,直接回车----
         if not exist !LabelSr!: echo 你输入的盘符是什么东西,根本不存在吗?
         if     exist !LabelSr!: set bHvLabSr=y
      )
   )
   echo.
   ::准备全局临时文件夹\tmp_Imagex,预备以后作为ScratchDir使用
   if not exist !LabelSr!:\tmp_Imagex md !LabelSr!:\tmp_Imagex
   if     exist !LabelSr!:\tmp_Imagex    rd /s /q  !LabelSr!:\tmp_Imagex&&md !LabelSr!:\tmp_Imagex

   if not exist !LabelSr!:\backup md !LabelSr!:\backup

   ::准备源系统映像文件与索引序号。
   set bHvLSr=n
   for /l %%i in (1,1,5) do (
      if !bHvLSr!==n (
         set /p LPartU=请输入系统映像源文件所在U盘盘符,不带冒号----
         if not exist !LPartU!: echo 这个盘符根本就没有使用了,你不要搞笑好吧
         if     exist !LPartU!: set bHvLSr=y
      )
   )

   dir !LPartU!:\*.wim /b /s >%temp%\fSeek.txt
   echo 查找到!LPartU!分区下所有映像文件如下表
   echo -----------------------------------------------------
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do ( set /a a+=1&&echo 系统映像:!a! %%i)
   set /a CountWim=!a!
   if !a!==0   echo 该分区无系统映像文件,退出重来吧!&&goto End

   echo.
   set /p NumWimSource=请输入系统映像源文件序号,我不检测无效序号,不带冒号----
   set bVldNSr=n
   for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
   if !bVldNSr!==n echo 你没有输入有效系统映像文件序号,退出重来吧!&&goto End

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
      set /a a+=1
      if !NumWimSource!==!a! copy %%i !LabelSr!:\backup\
   )

   echo list vol>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt
   ::准备复制U盘PE进EFI/MSR分区。
   echo.
   set bCpyPE=n
   for /l %%i in (1,1,5) do (
      if !bCpyPE!==n (
         set /p LabU=请输入PE源盘即DVD盘盘符,不带冒号,然后回车----
         if not exist !LabU!:\sources\boot.wim echo 这个盘不对,你不要搞笑好吧
         if     exist !LabU!:\sources\boot.wim (
            set bCpyPE=y
            if not exist !Label_ESP!:\boot\  md !Label_ESP!:\boot\
            if not exist !Label_ESP!:\winpe\  md !Label_ESP!:\winpe\
            if exist !Label_ESP!:\bootmgr      del /f /q !Label_ESP!:\bootmgr
            if exist !Label_ESP!:\bootmgr.efi  del /f /q !Label_ESP!:\bootmgr.efi
            xcopy /h  !LabU!:\bootmgr       !Label_ESP!:\
            xcopy /h  !LabU!:\bootmgr.efi   !Label_ESP!:\
            robocopy  !LabU!:\boot\     !Label_ESP!:\boot\ /e /xf bcd
            copy  /y !LabU!:\sources\boot.wim     !Label_ESP!:\winpe\
            copy  /y !LabU!:\boot\boot.sdi     !Label_ESP!:\winpe\
         )
      )
   )

   echo 映像文件已拷贝到本地磁盘,程序暂停,U盘可以拔出它用,然后继续。
   pause
   echo.
   dir !LabelSr!:\*.wim /b /s >%temp%\fSeek.txt
   echo 查找到!LabelSr!分区下所有映像文件如下表
   echo -----------------------------------------------------
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do ( set /a a+=1&&echo 系统映像:!a! %%i)
   set /a CountWim=!a!

   echo -----------------------------------------------------
   set /p NumWimSource=请输入系统映像源文件序号,我不检测无效序号,不带冒号----
   set bVldNSr=n
   for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
   if !bVldNSr!==n echo 你没有输入有效系统映像文件序号,退出重来吧!&&goto End

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
      set /a a+=1
      if !NumWimSource!==!a! Dism /get-imageinfo /imagefile:%%i
   )

   echo.
   set /p IndexSource=请输入系统映像索引序号,我不检测无效序号,不带冒号----

   echo.
   vol !LabSYS!:
   echo 格式化!LabSYS!盘,请核对分区对否,慎重,别破坏数据。
   echo.
   pause
   format !LabSYS!: /q /x /u /y /fs:ntfs /a:4096 /v:WSYS

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
      set /a a+=1
      if !a!==!NumWimSource! Dism /Apply-Image /ImageFile:"%%i" /Index:!IndexSource! /ApplyDir:!LabSYS!:\ /Scratchdir:!LabelSr!:\tmp_Imagex
   )

   if !bPart_GPT!==y %windir%\system32\bcdboot !LabSYS!:\windows /s !Label_ESP!: /f uefi /l zh-cn
   if not !bPart_GPT!==y (
      if not exist !LabSYS!:\bootmgr  %windir%\system32\bootsect.exe /nt52 !Label_ESP!: /force /mbr
      if     exist !LabSYS!:\bootmgr (
         %windir%\system32\bootsect.exe /nt60 !Label_ESP!: /force /mbr
         %windir%\system32\bcdboot !Label_SYS!:\windows /s !Label_ESP!: /f bios /l zh-cn
      )
   )

   if exist %temp%\bcd del /f /q %temp%\bcd
   bcdedit /createstore %temp%\bcd
   bcdedit /store %temp%\bcd /create {bootmgr} /d "Marc Boot Manager" >nul 2>nul
   bcdedit /store %temp%\bcd /set {bootmgr} device partition=\device\harddiskvolume!NumVolESP! >nul 2>nul
      
   ::下面几条语句好像有点多余,呵呵!
   bcdedit /store %temp%\bcd /create /d "Windows 8.1/8/7" /application osloader>%temp%\fmid.txt
   for /f "tokens=2 delims= "  %%i in (%temp%\fmid.txt) do (set fmid=%%i)
   bcdedit /store %temp%\bcd /set !fmid! device partition=!LabSYS!:
   if not !bPart_GPT!==n bcdedit /store %temp%\bcd /set !fmid! path \windows\system32\winload.efi
   if     !bPart_GPT!==n bcdedit /store %temp%\bcd /set !fmid! path \windows\system32\winload.exe
   bcdedit /store %temp%\bcd /set !fmid! osdevice partition=!LabSYS!:
   bcdedit /store %temp%\bcd /set !fmid! systemroot  \windows
   bcdedit /store %temp%\bcd /displayorder !fmid! /addlast

   echo.
   set     bMenuPE=y
   set /p  bMenuPE=最后请问是否建立PE引导菜单项,默认建立,如果不建输入小写n----

   if not !bMenuPE!==n (
      ::创建设备项
      bcdedit  /store %temp%\bcd /create /d "Win81PE_x64" /device>%~dp0fdid.txt
      ::取得所生成的设备标识符
      for /f "tokens=2 delims= "  %%i in (%~dp0fdid.txt) do (set fdid=%%i)
      ::设置设备所在分区
      bcdedit  /store %temp%\bcd /set !fdid! ramdisksdidevice partition=!Label_ESP!:
      ::设置设备所在的固定路径
      bcdedit  /store %temp%\bcd /set !fdid! ramdisksdipath \winpe\boot.sdi
      ::创建菜单项
      bcdedit  /store %temp%\bcd /create /d "Win81PE_x64" /application osloader>%~dp0fmid.txt
      ::取得所生成的菜单标识符
      for /f "tokens=2 delims= "  %%i in (%~dp0fmid.txt) do (set fmid=%%i)
      ::设置启动设备
      bcdedit  /store %temp%\bcd /set !fmid! device ramdisk=[!Label_ESP!:]\winpe\boot.wim,!fdid!
      ::设置系统设备
      bcdedit  /store %temp%\bcd /set !fmid! osdevice ramdisk=[!Label_ESP!:]\winpe\boot.wim,!fdid!
      ::设定启动程序(winload)的路径
      if not !bPart_GPT!==n bcdedit  /store %temp%\bcd /set !fmid! path \windows\system32\winload.efi
      if     !bPart_GPT!==n bcdedit  /store %temp%\bcd /set !fmid! path \windows\system32\winload.exe
      ::设置系统根目录
      bcdedit  /store %temp%\bcd /set !fmid! systemroot \windows
      ::开启detecthal支持
      bcdedit  /store %temp%\bcd /set !fmid! detecthal yes
      ::开启WinPE支持
      bcdedit  /store %temp%\bcd /set !fmid! winpe yes
      ::设置nx为optin
      bcdedit  /store %temp%\bcd /set !fmid! nx optin
      ::设置为最后一项显示
      bcdedit  /store %temp%\bcd /displayorder !fmid! /addlast

      bcdedit  /store %temp%\bcd /timeout 2
      bcdedit  /store %temp%\bcd /enum all
   )

   bcdedit  /import %temp%\bcd
   goto End
)



剩余内容在20楼,待续!

Snap4.jpg (249.97 KB, 下载次数: 63)

Snap4.jpg

pwdd_20140428.rar

35.22 KB, 下载次数: 311, 下载积分: 无忧币 -2

评分

参与人数 4无忧币 +18 收起 理由
天使的魔翼 + 5 很给力!
freesoft00 + 5 很给力!
secowu + 5 不错,印象中mbr与gpt互转启动,有时不成功.
abc1763613206 + 3 很给力!

查看全部评分

推荐
发表于 2013-11-24 23:10:02 来自手机 | 只看该作者
好东东是干什么用的
?…
回复

使用道具 举报

推荐
发表于 2013-11-24 22:15:16 | 只看该作者
虽然看不懂,但觉得好像很厉害的样子
回复

使用道具 举报

推荐
发表于 2013-11-24 21:02:52 | 只看该作者
非常好的东西!!收藏了
回复

使用道具 举报

5#
发表于 2013-11-24 23:39:17 | 只看该作者
收藏学习,谢谢分享!
回复

使用道具 举报

6#
发表于 2013-11-25 08:41:17 | 只看该作者
不错的东西,收藏了
回复

使用道具 举报

7#
发表于 2013-11-25 11:20:47 | 只看该作者

收藏学习,谢谢分享.....
回复

使用道具 举报

8#
发表于 2013-11-25 15:20:54 | 只看该作者
收藏备用
辛苦啦
回复

使用道具 举报

9#
发表于 2013-11-25 16:48:07 | 只看该作者
很有用     收藏啦
回复

使用道具 举报

10#
 楼主| 发表于 2013-11-26 09:03:12 | 只看该作者
麻烦各位大神推荐一款Win8.1 x64 PE,一定要能支持Dism和Diskpart操作,要ISO版的,目前在用WingXY Win7 x64 PE,非常好,不过Dism版本太老了,想用8.1最起码要8的Dism。叫我从头研究PE,没时间也没兴趣了。把这个工具包本身搞完,耗费了我SSD的好几十个p/e了,人也折腾得够呛了。
回复

使用道具 举报

11#
发表于 2013-11-26 17:53:45 | 只看该作者
真给力啊。。。谢谢楼主分享了
回复

使用道具 举报

12#
发表于 2013-11-26 23:48:25 | 只看该作者
功能很强大,但如果有图形界面或者更好用!
回复

使用道具 举报

13#
发表于 2013-11-29 21:35:22 | 只看该作者
收藏学习,谢谢分享!
回复

使用道具 举报

14#
发表于 2013-12-1 21:23:57 | 只看该作者
收藏慢慢学习 谢谢
回复

使用道具 举报

15#
发表于 2013-12-4 10:50:52 | 只看该作者
太好了,谢谢了!!!!!!
回复

使用道具 举报

16#
发表于 2013-12-4 19:58:33 | 只看该作者
好东西,小白不知道怎样用。
回复

使用道具 举报

17#
发表于 2013-12-4 22:37:39 | 只看该作者
虽然看不懂,便来支持楼主分享的代码
回复

使用道具 举报

18#
发表于 2014-3-8 11:07:42 | 只看该作者
多谢多谢
辛苦了
回复

使用道具 举报

19#
发表于 2014-3-19 17:36:18 | 只看该作者
这回可以用于自动应答分区了,惺惺惜惺惺
回复

使用道具 举报

20#
 楼主| 发表于 2014-3-19 17:47:57 | 只看该作者
接着1楼

if !OpChoice!==11 (

echo list disk>%temp%\DiskPart.txt
diskpart /s %temp%\DiskPart.txt

set /a CountDisk=0
set /a CountPart=0
set    NumDisk=0
set    bVldNum=n
set    NumVol=0

set /a a=0
set /a CountWim=0
set /a NumWimSource=0
set /a NumDskG=0
set /a NumPart=0
set    bBK=y

echo list disk>%temp%\DiskPart.txt
diskpart /s %temp%\DiskPart.txt>%temp%\Out_DiskPart.txt

find /i "磁盘" %temp%\Out_DiskPart.txt>%temp%\Out_tmp.txt
for /f "skip=2 tokens=2 delims= " %%i in (%temp%\Out_tmp.txt) do (set /a CountDisk=%%i)

for /l %%i in (1,1,5) do (
   if !bVldNum!==n (set /p  NumDisk=请输入要安装或备份系统的目标磁盘编号,从0起编,默认第0块磁盘----)
   for /l %%j in (0,1,!CountDisk!) do (
      if !NumDisk!==%%j set bVldNum=y
   )
)
if !bVldNum!==n (echo 磁盘编号5次都输错,算了退出吧!&&exit)

::Ghost认为磁盘从1开始起编!
set /a NumDskG=!NumDisk!+1

set /p bBK=请问是进行备份吗,如恢复输入n,默认是备份y,直接回车----

echo select disk !NumDisk!>%temp%\DiskPart.txt
echo list part>>%temp%\DiskPart.txt
diskpart /s %temp%\DiskPart.txt
::准备指定安装或备份分区
set /p NumPart=你选择在磁盘^<!NumDisk!^>上安装或备份系统,请输入分区序号----

if !bBK!==y (

   echo list vol>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt
   set bHvLabSr=n
   for /l %%i in (1,1,5) do (
      if !bHvLabSr!==n (
         set /p LabelSr=请输入系统备份gho文件的放置盘符,直接回车----
         if not exist !LabelSr!: echo 你输入的盘符是什么东西,根本不存在吗?
         if     exist !LabelSr!: set bHvLabSr=y
      )
   )
   if not exist !LabelSr!:\backup md !LabelSr!:\backup
   set    NameBack=bk_Mby
   set /p NameBack=请输入要备份文件名字,默认名字bk_Mby,直接回车----
   %~dp0ghost -clone,mode=pdump,src=!NumDskG!:!NumPart!,dst=!LabelSr!:\backup\!NameBack!.gho /z9 /sure
   goto End
)

if not !bBK!==y (
   echo list vol>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt
   ::指定要安装分区,请看卷标信息。
   set bHvSYS=n
   for /l %%i in (1,1,5) do (
      if !bHvSYS!==n (
         set /p LabSYS=请输入要安装系统分区盘符,就是那个序号对应的盘符,然后回车----
         if not exist !LabSYS!: echo 你输入的盘符是什么东西,根本不存在吗?
         if     exist !LabSYS!: set bHvSYS=y
      )
   )

   ::指定EFI/MSR分区盘符,请看卷标信息。
   set bHvSYS=n
   for /l %%i in (1,1,5) do (
      if !bHvSYS!==n (
         set /p Label_ESP=请输入EFI/MSR分区盘符,不带冒号,然后回车----
         if not exist !Label_ESP!: echo 你输入的盘符是什么东西,根本不存在吗?
         if     exist !Label_ESP!: set bHvSYS=y
      )
   )

   set    bNdCpyFil=n
   set /p bNdCpyFil=请问需要从U盘复制gho文件吗,如需要输入y,默认不要n,直接回车----
   if !bNdCpyFil!==y (
      ::现在准备把系统备份gho文件复制到本地卷中,请看卷标信息。
      ::指定系统备份gho文件文件本地磁盘放置分区。
      set bHvLabSr=n
      for /l %%i in (1,1,5) do (
         if !bHvLabSr!==n (
            set /p LabelSr=请输入要放置系统备份gho文件的盘符,直接回车----
            if not exist !LabelSr!: echo 你输入的盘符是什么东西,根本不存在吗?
            if     exist !LabelSr!: set bHvLabSr=y
         )
      )
      if not exist !LabelSr!:\backup md !LabelSr!:\backup

      ::准备源系统备份gho文件与索引序号。
      set bHvLSr=n
      for /l %%i in (1,1,5) do (
         if !bHvLSr!==n (
            set /p LPartU=请输入系统备份gho文件所在U盘盘符,不带冒号----
            if not exist !LPartU!: echo 这个盘符根本就没有使用了,你不要搞笑好吧
            if     exist !LPartU!: set bHvLSr=y
         )
      )

      dir !LPartU!:\*.gho /b /s >%temp%\fSeek.txt
      echo 查找到!LPartU!分区下所有gho文件如下表
      echo -----------------------------------------------------
      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do ( set /a a+=1&&echo 系统备份:!a! %%i)
      set /a CountWim=!a!
      if !a!==0   echo 该分区无系统备份文件,退出重来吧!&&goto End

      set /p NumWimSource=请输入gho文件序号,我不检测无效序号,不带冒号----
      set bVldNSr=n
      for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
      if !bVldNSr!==n echo 你没有输入有效gho文件序号,退出重来吧!&&goto End

      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
         set /a a+=1
         if !NumWimSource!==!a! copy %%i !LabelSr!:\backup\
      )

      echo gho文件已拷贝到本地磁盘,程序暂停,U盘可以拔出它用,然后继续。
      pause

      dir !LabelSr!:\*.gho /b /s >%temp%\fSeek.txt
      echo 查找到!LabelSr!分区下所有gho文件如下表
      echo -----------------------------------------------------
      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do ( set /a a+=1&&echo 系统gho:!a! %%i)
      set /a CountWim=!a!

      set /p NumWimSource=请输入系统gho文件序号,我不检测无效序号,不带冒号----
      set bVldNSr=n
      for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
      if !bVldNSr!==n echo 你没有输入有效系统gho文件序号,退出重来吧!&&goto End

      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
         set /a a+=1
         if !NumWimSource!==!a! ( %~dp0ghost -clone,mode=pload,src=%%i:1,dst=!NumDskG!:!NumPart! /sure )
      )
   )
   if not !bNdCpyFil!==y (
      set bHvLabSr=n
      for /l %%i in (1,1,5) do (
         if !bHvLabSr!==n (
            set /p LabelSr=请输入有系统备份gho文件的盘符,直接回车----
            if not exist !LabelSr!: echo 你输入的盘符是什么东西,根本不存在吗?
            if     exist !LabelSr!: set bHvLabSr=y
         )
      )

      dir !LabelSr!:\*.gho /b /s >%temp%\fSeek.txt
      echo 查找到!LabelSr!分区下所有gho文件如下表
      echo -----------------------------------------------------
      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do ( set /a a+=1&&echo 系统gho:!a! %%i)
      set /a CountWim=!a!

      set /p NumWimSource=请输入系统gho文件序号,我不检测无效序号,不带冒号----
      set bVldNSr=n
      for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
      if !bVldNSr!==n echo 你没有输入有效系统gho文件序号,退出重来吧!&&goto End

      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
         set /a a+=1
         if !NumWimSource!==!a! ( %~dp0ghost -clone,mode=pload,src=%%i:1,dst=!NumDskG!:!NumPart! /sure )
      )
   )
   if !bPart_GPT!==y %windir%\system32\bcdboot !LabSYS!:\windows /s !Label_ESP!: /f uefi /l zh-cn
   if not !bPart_GPT!==y (
     if     exist !LabSYS!:\ntldr  %windir%\system32\bootsect.exe /nt52 !Label_ESP!: /force /mbr
     if not exist !LabSYS!:\ntldr  %windir%\system32\bootsect.exe /nt60 !Label_ESP!: /force /mbr&&%windir%\system32\bcdboot !Label_SYS!:\windows /s !Label_ESP!: /f bios /l zh-cn
   )
)
   goto End
)

if !OpChoice!==12 (

set    bVldNum=n
set    NumVol=0
set /a a=0
set    NumSdi=1
set /a CountWim=0
set    NumWimSource=1

set    bHvFilePE=n

echo ------------------------------------------------------------------------------
echo.
echo 将PE安装在EFI分区或者MSR分区内,防止PE受损,没有这种分区你就老外了。
echo.
echo ------------------------------------------------------------------------------
echo PE放于指定盘根目录下WinPE文件夹,设备文件Boot.sdi和启动文件Boot.wim也固定。

set    bIsUEFI=y
set /p bIsUEFI=请问BIOS是否UEFI,默认是,不是请输入小写n----

set bHvLab=n
set /p bHvLab=采用MBR但无MSR,或者MBR中MSR分区/ESP分区如已有盘符,输入y,其余直接回车----
if  !bHvLab!==y (
   set /p LabelEFI=请输入ESP分区或MBR中MSR分区盘符或者MBR无MSR分区时的系统盘符----
)
if  not !bHvLab!==y (
   ::给EFI或者MSR分区分配盘符
   set bHvSetESP=n
   for %%i in (z y x w v u t s r q p o n m) do (
      if !bHvSetESP!==n ( if  not exist %%i: set LabelEFI=%%i&&set bHvSetESP=y )
   )
   echo list vol>%temp%\DiskPart.txt
   echo exit>>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt
   set /p NumVolESP=请输入GPT中ESP分区或MBR中MSR分区的卷编号,直接回车----
   echo select vol !NumVolESP!>%temp%\DiskPart.txt
   echo assign letter=!LabelEFI!>>%temp%\DiskPart.txt
   echo exit>>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt
)


::UEFI引导需要PE源盘安装硬盘PE,默认需要本PE源盘,MBR引导,默认也要
set     bCopyPE=y
set /p  bCopyPE=请问是否需要复制PE文件,默认需要,不需要输入小写n----

if not !bCopyPE!==n (

   set    name_PE=PE_MBY
   set /p name_PE=默认安装PE于!LabelEFI!:\PE_MBY目录,也可输入目录名字,如PE_WYS----

   if not exist !LabelEFI!:\!name_PE!\  md !LabelEFI!:\!name_PE!\

   set name_PathSdi=!name_PE!
   set name_PathWim=!name_PE!

   set bHvLSr=n
   for /l %%i in (1,1,5) do (
      if !bHvLSr!==n (
         set /p LPartU=请输入PE源文件所在盘盘符,可以是本地硬盘,不带冒号----
         if not exist !LPartU!: echo 这个盘符根本就没有使用了,你不要搞笑好吧
         if     exist !LPartU!: set bHvLSr=y
      )
   )
   echo.
   dir !LPartU!:\*.sdi /b /s >%temp%\fdSeek.txt
   echo 查找到!LPartU!分区下所有映像引导文件*.sdi如下表
   echo -----------------------------------------------------
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fdSeek.txt) do ( set /a a+=1&&echo 系统引导文件:!a! %%i)
   set /a CountWim=!a!
   if !a!==0   echo 该分区无PE系统映像引导文件,退出重来吧!&&goto End
   echo -----------------------------------------------------
   set /p NumSdi=请输入系统映像引导文件序号,我不检测无效序号,默认1----
   set bVldNSr=n
   for /l %%i in (1,1,!CountWim!) do ( if !NumSdi!==%%i set bVldNSr=y   )
   if !bVldNSr!==n echo 你没有输入有效PE系统映像文件序号,退出重来吧!&&goto End

   echo.
   dir !LPartU!:\*.wim /b /s >%temp%\fwSeek.txt
   echo 查找到!LPartU!分区下所有映像文件如下表
   echo -----------------------------------------------------
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fwSeek.txt) do ( set /a a+=1&&echo PE系统映像:!a! %%i)
   set /a CountWim=!a!
   if !a!==0   echo 该分区无PE系统映像文件,退出重来吧!&&goto End
   echo -----------------------------------------------------
   set /p NumWimSource=请输入PE系统映像文件序号,我不检测无效序号,默认1----
   set bVldNSr=n
   for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
   if !bVldNSr!==n echo 你没有输入有效PE系统映像文件序号,退出重来吧!&&goto End

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fdSeek.txt) do (
     set /a a+=1
     if !a!==!NumSdi! copy /y %%i !LabelEFI!:\!name_PE!\boot.sdi
   )

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fwSeek.txt) do (
     set /a a+=1
     if !a!==!NumWimSource! copy /y %%i !LabelEFI!:\!name_PE!\boot.wim
   )

)

if   !bIsUEFI!==n (
   set     bCopyBoot=n
   set /p  bCopyBoot=是否需要从PE源盘复制MBR启动环境文件,默认不,需要输入小写y----

   if not !bCopyBoot!==n (

      
      set bHvLSr=n
      for /l %%i in (1,1,5) do (
         if !bHvLSr!==n (
            set /p LPartPE=请输入PE源盘盘符,然后回车----
            if not exist !LPartPE!: echo 这个盘符根本就没有使用了,你不要搞笑好吧
            if     exist !LPartPE!: set bHvLSr=y
         )
      )

      if not exist !LPartPE!:\boot\ ( echo 这个盘里没有启动环境文件,你不要搞笑好吧!&& goto End )
      xcopy /h /y   !LPartPE!:\bootmgr   !LabelEFI!:\
      if     exist !LabelEFI!:\boot\  rd /s /q  !LabelEFI!:\boot\
      if not exist !LabelEFI!:\boot\  md !LabelEFI!:\boot\
      robocopy  !LPartPE!:\boot\     !LabelEFI!:\boot\  /e /xf bcd
   )
)

set     bbPE=y
set /p  bbPE=请问是否建PE菜单项,默认建,如果不建输入小写n----

if not !bbPE!==n (

   if  !bCopyPE!==n (
   ::没有复制源文件,说明ESP/MSR分区中已经存在PE源文件,查找相应路径
   echo.
   dir !LabelEFI!:\*.sdi /b /s >%temp%\fdSeek.txt
   echo 查找到!LabelEFI!分区下所有映像引导文件*.sdi如下表
   echo -----------------------------------------------------
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fdSeek.txt) do ( set /a a+=1&&echo 系统引导文件:!a! %%i )
   set /a CountWim=!a!
   if !a!==0   echo 该分区无PE系统映像引导文件,退出重来吧!&&goto End
   echo -----------------------------------------------------
   set /p NumSdi=请输入系统映像引导文件序号,我不检测无效序号,默认1----
   set bVldNSr=n
   for /l %%i in (1,1,!CountWim!) do ( if !NumSdi!==%%i set bVldNSr=y   )
   if !bVldNSr!==n echo 你没有输入有效PE系统映像文件序号,退出重来吧!&&goto End

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fdSeek.txt) do (
      set /a a+=1
      if !a!==!NumSdi! (
         set namePathSdi=%%i
         set name_PathSdi=!namePathSdi:~3,-9!
      )
   )
   echo 引导文件路径是:!name_PathSdi!
   set /p name_PathSdi=如果路径有误,请手工输入,默认不需要,直接回车----

   echo.
   dir !LabelEFI!:\*.wim /b /s >%temp%\fwSeek.txt
   echo 查找到!LabelEFI!分区下所有PE映像文件如下表
   echo -----------------------------------------------------
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fwSeek.txt) do ( set /a a+=1&&echo PE系统映像:!a! %%i)
   set /a CountWim=!a!
   if !a!==0   echo 该分区无PE系统映像文件,退出重来吧!&&goto End
   echo -----------------------------------------------------
   set /p NumWimSource=请输入PE系统映像文件序号,我不检测无效序号,默认1----
   set bVldNSr=n
   for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
   if !bVldNSr!==n echo 你没有输入有效PE系统映像文件序号,退出重来吧!&&goto End

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fwSeek.txt) do (
      set /a a+=1
      if !a!==!NumWimSource! (
         set namePathWim=%%i
         set name_PathWim=!namePathWim:~3,-9!
      )
   )

   echo PE系统文件路径是:!name_PathWim!
   set /p name_PathWim=如果路径有误,请手工输入,默认不需要,直接回车----

   )

set    name_MenuPE=PE_MBY
set /p name_MenuPE=输入菜单项名字,默认PE_MBY,可自行输入,如MAXDOS_WYS----



   echo list vol>%temp%\DiskPart.txt
   echo exit>>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt
   set /p NumVolESP=请输入GPT中ESP分区或MBR中MSR分区的卷编号,直接回车----
   bcdedit /create {bootmgr} /d "Marc Boot Manager" >nul 2>nul
   bcdedit /set {bootmgr} device partition=\device\harddiskvolume!NumVolESP! >nul 2>nul


::创建设备项
bcdedit  /create /d "!name_MenuPE!" /device>%~dp0fdid.txt
::取得所生成的设备标识符
for /f "tokens=2 delims= "  %%i in (%~dp0fdid.txt) do (set fdid=%%i)
::设置设备所在分区
bcdedit  /set !fdid! ramdisksdidevice partition=!LabelEFI!:
::设置设备所在的固定路径
bcdedit  /set !fdid! ramdisksdipath \!name_PathSdi!\boot.sdi
::创建菜单项
bcdedit  /create /d "!name_MenuPE!" /application osloader>%~dp0fmid.txt
::取得所生成的菜单标识符
for /f "tokens=2 delims= "  %%i in (%~dp0fmid.txt) do (set fmid=%%i)
::设置启动设备
bcdedit  /set !fmid! device ramdisk=[!LabelEFI!:]\!name_PathWim!\boot.wim,!fdid!
::设置系统设备
bcdedit  /set !fmid! osdevice ramdisk=[!LabelEFI!:]\!name_PathWim!\boot.wim,!fdid!
::设定启动程序(winload)的路径
if not !bIsUEFI!==n bcdedit  /set !fmid! path \windows\system32\winload.efi
if     !bIsUEFI!==n bcdedit  /set !fmid! path \windows\system32\winload.exe
::设置系统根目录
bcdedit  /set !fmid! systemroot \windows
::开启detecthal支持
bcdedit  /set !fmid! detecthal yes
::开启WinPE支持
bcdedit  /set !fmid! winpe yes
::设置nx为optin
bcdedit  /set !fmid! nx optin
::设置为最后一项显示
bcdedit  /displayorder !fmid! /addlast

bcdedit  /timeout 2
bcdedit  /enum

)


del /f  /s /q %~dp0fdid.txt>nul 2>nul
del /f  /s /q %~dp0fmid.txt>nul 2>nul


   goto End
)
if !OpChoice!==13 (
   echo.
   echo 1:本批处理、驱动和补丁子目录、IE升级包必需都在当前目录。
   echo    在同目录中有\Driver、\patch和\IE固定目录,放置驱动和补丁子目录。
   echo    如\Driver\Drv_Win8_x64,\patch\patch_Win8_x64
   echo    调整Win7、Win8功能,可能还要准备Win8原版光盘,或者IE10安装包。
   echo.
   echo 2:当前目录下工作子目录,挂载文件夹\Mount,临时文件夹\tmp_Imgex。
   echo    临时文件*.txt都在系统临时文件夹%temp%中。
   echo.
   pause
   ::准备全局变量
   set /a a=0
   set /a CountWim=0
   set /a CountIndex=0
   set /a NumWimSource=0
   set /a IndexSource=0

   ::准备局部变量
   set /a CountPatch=0
   set /a NumPatch=0
   set /a CountDrv=0
   set /a NumDrv=0
   set /a CountIE=0
   set /a NumIE=0
   cls
   echo.
   set    bPatDism=y
   set /p bPatDism=请问是否封装系统补丁?默认是y,直接回车/不是输入小写n----
   set    bDrvDism=y
   set /p bDrvDism=请问是否封装硬件驱动?默认是y,直接回车/不是输入小写n----
   set    bIsWin8=y
   set /p bIsWin8=请问是要操作Win8映像吗?默认是y,直接回车/不是输入小写n----

   if not !bIsWin8!==n (
      set    bEnabNet3=y
      set /p bEnabNet3=请问是否启用 .Net 3.5/2支持?默认是y,直接回车/不是输入小写n----
      if not !bEnabNet3!==n (
         set /p LabelISO=请插入光盘或者装载ISO,并准确输入盘符!----
      )
   )
   if !bIsWin8!==n (
      set    bDisabFun=y
      set /p bDisabFun=请问是否关闭Win7部分功能?默认是y,直接回车/不是输入小写n----
      set    bDismIE10=y
      set /p bDismIE10=请问是否封装IE10?默认是y,直接回车/不是输入小写n----
   )

   ::准备源系统映像文件与索引序号。
   set bHvLSr=n
   for /l %%i in (1,1,5) do (
      if !bHvLSr!==n (
         set /p LPartSource=请输入系统映像文件所在盘,不带冒号----
         if not exist !LPartSource!: echo 这个盘符根本就没有使用了,你不要搞笑好吧
         if     exist !LPartSource!: set bHvLSr=y
      )
   )
   dir !LPartSource!:\*.wim /b /s >%temp%\fSeek.txt
   echo 查找到!LPartSource!分区下所有映像文件如下表
   echo -----------------------------------------------------
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do ( set /a a+=1&&echo 系统映像:!a! %%i)
   set /a CountWim=!a!
   if !a!==0   echo 该分区无系统映像文件,退出重来吧!&&goto End

   ::准备临时文件夹\tmp_Imagex,预备以后作为ScratchDir使用,这段代码不能随意移动位置!
   ::目的是1:在PE中临时文件空间不足,源文件盘空间一般没问题;2:如果源文件在固态盘,要充分固态盘速度优势。
   if not exist !LPartSource!:\tmp_Imagex md !LPartSource!:\tmp_Imagex
   if     exist !LPartSource!:\tmp_Imagex    rd /s /q  !LPartSource!:\tmp_Imagex&&md !LPartSource!:\tmp_Imagex
   ::准备局部文件夹\mount
   if not exist !LPartSource!:\mount md !LPartSource!:\mount
   if     exist !LPartSource!:\mount (
      :rd
      dir !LPartSource!:\mount /ad /b /s   >%temp%\del_rd.txt
      for /f "usebackq delims=" %%i in (%temp%\del_rd.txt) do ((takeown /f "%%i"  /r /d y >%temp%\del_log.txt>nul 2>nul)&(@echo y|icacls "%%i" /t /q  /grant  administrator:f>nul 2>nul )&(rd "%%i" /s /q>nul 2>nul))
      takeown /f !LPartSource!:\mount /r /d y >%temp%\del_log.txt>nul 2>nul
      @echo y|icacls  !LPartSource!:\mount /t /q  /grant  administrator:f>nul 2>nul
      rd !LPartSource!:\mount /s /q
      if exist !LPartSource!:\mount goto :rd
      del /f  /s /q %temp%\del_log.txt>nul 2>nul
      del /f  /s /q %temp%\del_rd.txt>nul 2>nul
      md !LPartSource!:\mount
   )
   set /p NumWimSource=请输入系统映像文件序号,我不检测无效序号,不带冒号----
   set bVldNSr=n
   for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
   if !bVldNSr!==n echo 你没有输入有效系统映像文件序号,退出重来吧!&&goto End

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
      set /a a+=1
      if !NumWimSource!==!a! Dism /get-imageinfo /imagefile:%%i
   )
   set /p IndexSource=请输入系统映像索引序号,我不检测无效序号,不带冒号----

   if not !bPatDism!==n (
      cls
      set /a a=0
      dir %~dp0patch /d /b >%temp%\dirPatSeek.txt
      echo 查找到%~dp0patch目录下所有子目录,仅查子目录
      for /f "usebackq delims=" %%i in (%temp%\dirPatSeek.txt) do (
         set /a a+=1
         echo 所有子目录:!a!  %%i)
      set /a CountPatch=!a!
      if !CountPatch!==0   echo 无任何patch子目录&&set bPatDism=n
      echo -----------------------------------------------------
      if not !CountPatch!==0 (
         set /p NumPatch=请输入patch子目录序号,不带冒号----
         set bVldPat=n
         for /l %%i in (1,1,!CountPatch!) do (
            if !NumPatch!==%%i set bVldPat=y
         )
         if !bVldPat!==n echo 你没有输入有效patch子目录序号,退出重来吧!&&goto End
      )
   )

   if not !bDrvDism!==n (
      cls
      set /a a=0
      dir %~dp0Driver /d /b >%temp%\dirDrvSeek.txt
      echo 查找到%~dp0Driver目录下所有子目录,仅查子目录
      for /f "usebackq delims=" %%i in (%temp%\dirDrvSeek.txt) do (
         set /a a+=1
         echo 所有子目录:!a!  %%i)
      set /a CountDrv=!a!
      if !CountDrv!==0   echo 无任何Driver子目录&&set bDrvDism=n
      echo -----------------------------------------------------
      if not !CountDrv!==0 (
         set /p NumDrv=请输入patch子目录序号,不带冒号----
         set bVldDrv=n
         for /l %%i in (1,1,!CountDrv!) do (
            if !NumDrv!==%%i set bVldDrv=y
         )
         if !bVldDrv!==n echo 你没有输入有效Driver子目录序号,退出重来吧!&&goto End
      )
   )

   if !bIsWin8!==n (
      if not !bDismIE10!==n (
         echo IE10升级包在当前目录子目录IE下!
         set /a a=0
         dir %~dp0IE /d /b >%temp%\dirIESeek.txt
         echo 查找到%~dp0IE目录下所有子目录,仅查子目录
         for /f "usebackq delims=" %%i in (%temp%\dirIESeek.txt) do (
            set /a a+=1
            echo 所有子目录:!a!  %%i)
         set /a CountIE=!a!
         if !CountIE!==0   echo 无任何IE子目录&&set bDismIE10=n
         echo -----------------------------------------------------
         if not !CountIE!==0 (
            set /p NumIE=请输入IE子目录序号,不带冒号----
            set bVldIE=n
            for /l %%i in (1,1,!CountIE!) do (
               if !NumIE!==%%i set bVldIE=y
            )
            if !bVldIE!==n echo 你没有输入有效IE子目录序号,退出重来吧!&&goto End
         )
      )
   )

   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
      set /a a+=1
      if !NumWimSource!==!a! dism /mount-image /imagefile:"%%i" /index:!IndexSource! /mountdir:!LPartSource!:\mount  /Scratchdir:!LPartSource!:\tmp_Imagex  
   )
   
   if not !bPatDism!==n  (
      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\dirPatSeek.txt) do (
         set /a a+=1
         if !NumPatch!==!a! dir  "%~dp0patch\%%i" /b /s >%temp%\fPatSeek.txt
      )
      for /f "usebackq delims=" %%j in (%temp%\fPatSeek.txt) do ( dism /image:!LPartSource!:\mount /add-package /packagepath:%%j  /Scratchdir:!LPartSource!:\tmp_Imagex )

   )

   if not !bDrvDism!==n (
      set /a a=0
      for /f "usebackq delims=" %%i in (%temp%\dirDrvSeek.txt) do (
        set /a a+=1
        if !NumDrv!==!a!  dism /image:!LPartSource!:\mount /add-driver /driver:"%~dp0Driver\%%i" /recurse /forceunsigned  /Scratchdir:!LPartSource!:\tmp_Imagex
      )
   )

   if not !bIsWin8!==n (
      if not !bEnabNet3!==n (
          dism /image:!LPartSource!:\mount /enable-Feature /FeatureName:netfx3 /Source:!LabelISO!:\sources\sxs  /Scratchdir:!LPartSource!:\tmp_Imagex
      )
   )

   if !bIsWin8!==n (
      if not !bDisabFun!==n (
         echo 调整功能独立操作,以增强批处理兼容性,连Win7 Starter都可以用。
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:TabletPCOC
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:WindowsGadgetPlatform   
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:MediaCenter     
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:FaxServicesClientPackage     
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:Printing-XPSServices-Features   
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:Xps-Foundation-Xps-Viewer     
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:Printing-Foundation-InternetPrinting-Client   
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:Hearts   
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:Solitaire
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:SpiderSolitaire
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:FreeCell     
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:Minesweeper      
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:PurblePlace     
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:Chess   
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:Shanghai   
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:InboxGames   
         dism /Image:!LPartSource!:\mount /Disable-Feature /Scratchdir:!LPartSource!:\tmp_Imagex   /FeatureName:OpticalMediaDisc   
      )
      if not !bDismIE10!==n (
         set /a a=0
         for /f "usebackq delims=" %%i in (%temp%\dirIESeek.txt) do (
            set /a a+=1
            if !NumIE!==!a!  (
               dism /image:!LPartSource!:\mount /add-package /packagepath:%~dp0ie\%%i\ie-win7.cab /packagepath:%~dp0ie\%%i\ielangpack-CHS.CAB /Scratchdir:!LPartSource!:\tmp_Imagex
               dism /image:!LPartSource!:\mount /add-package /packagepath:%~dp0ie\%%i\IE-Hyphenation-NEU.msu  /packagepath:%~dp0ie\%%i\IE-Spelling-NEU.msu /Scratchdir:!LPartSource!:\tmp_Imagex         
            )
         )
      )
   )

   set /p bCommit=请问是否保存映像修改,默认是y,直接回车/不保存输入小写n----
   if not !bCommit!==n ( dism /unmount-image /mountdir:!LPartSource!:\mount /commit  /Scratchdir:!LPartSource!:\tmp_Imagex )
   if     !bCommit!==n ( dism /unmount-image /mountdir:!LPartSource!:\mount /discard /Scratchdir:!LPartSource!:\tmp_Imagex )

   rd /s /q  !LPartSource!:\tmp_Imagex
   rd /s /q  !LPartSource!:\mount
   goto End
)
if !OpChoice!==14 (
   echo 查找同目录(及子目录)下自动应答文件,如果一个都没有,那就不要试了。
   echo 本工具包提供的自动应答文件分64位和32位两种,通用版仅仅实现跳过oobe过程。
   set /a NumUntitled=0
   set /a a=0
   set NameUntitled=null
   dir %~dp0*.xml /b /s >%~dp0fAppUntitled.txt
   echo 查找到%~dp0目录下所有自动应答文件如下表
   echo -----------------------------------------------------
   for /f "usebackq delims=" %%i in (%~dp0fAppUntitled.txt) do ( set /a a+=1&&echo 应答文件:!a! %%i)
   if !a!==0   echo 根本就没有一个自动应答文件,那封装也没什么意思了,准备退出!&&goto End
   echo.
   set /p NumUntitled=请认真选择应答文件序号,不带冒号----
   set /a a=0
   for /f "usebackq delims=" %%i in (%~dp0fAppUntitled.txt) do (
      set /a a+=1
      if !NumUntitled!==!a! echo 你选择的应答文件是:%%i
   )
   set    bGoSysprep=y
   set /p bGoSysprep=最后请确认现在可以开始封装了吗?默认是,直接回车,如果算了,请输入小写n----
   if not !bGoSysprep!==n (
      echo 正在帮您清除系统垃圾文件,请稍等......
      ::删除补丁备份目录
      rd %windir%\$hf_mig$ /Q /S
      ::删除系统盘Office安装临时文件
      rd /s /q %systemdrive%\msocache
      dir /ad /b /s %windir%\$NtUninstall* >%~dp0Del_rd.txt
      dir /ad /b /s %windir%\SoftwareDistribution\Download>>%~dp0Del_rd.txt
      for /f %%i in (%~dp0Del_rd.txt ) do ( rd "%%i" /s /q )
      del %~dp0Del_rd.txt  /f /q
      ::删除补丁安装记录内容(下面的del /f /s /q %systemdrive%\*.log已经包含删除此类文件)
      del %windir%\KB*.log /f /q
      ::删除系统盘目录下临时文件
      del /f /s /q %windir%\*.tmp
      ::删除系统盘目录下临时文件
      del /f /s /q %windir%\*._mp
      ::删除系统盘目录下日志文件
      del /f /s /q %windir%\*.log
      ::删除系统盘目录下GID文件
      del /f /s /q %windir%\*.gid
      ::删除系统目录下scandisk(磁盘扫描)留下的无用文件
      del /f /s /q %windir%\*.chk
      ::删除系统目录下old文件
      del /f /s /q %windir%\*.old
      ::删除回收站的无用文件
      del /f /s /q %windir%\recycled\*.*
      ::删除系统目录下备份文件
      del /f /s /q %windir%\*.bak
      ::删除系统维护等操作产生的临时文件
      rd /s /q %windir%\temp md %windir%\temp
      ::删除当前用户的COOKIE(IE)
      del /f /q %userprofile%\cookies\*.*
      ::删除internet临时文件
      del /f /s /q "%userprofile%\local settings\temporary internet files\*.*"
      ::删除当前用户日常操作临时文件
      del /f /s /q "%userprofile%\local settings\temp\*.*"
      copy %systemdrive%\Users\%username%\Favorites\*.*  %systemdrive%\Users\Default\Favorites
      dir %~dp0Desk*.bat /b /s >%~dp0fTmp.txt
      dir %~dp0Driver*.bat /b /s >>%~dp0fTmp.txt
      for /f %%i in (%~dp0fTmp.txt) do ( copy %%i %windir%\system32 )
      set /a a=0
      for /f "usebackq delims=" %%i in (%~dp0fAppUntitled.txt) do (
         set /a a+=1
         if !a!==!NumUntitled!  %windir%\system32\sysprep\sysprep.exe /oobe /generalize /shutdown  /unattend:%%i
      )
   )
   goto End
)


if !OpChoice!==15 (

set    bIsUEFI=y
set /p bIsUEFI=请问BIOS是否UEFI,默认是,不是请输入小写n----

set bHvLab=n
set /p bHvLab=采用MBR但无MSR,或者MBR中MSR分区/ESP分区如已有盘符,输入y,其余直接回车----
if  !bHvLab!==y (
   set /p LabelEFI=请输入ESP分区或MBR中MSR分区盘符或者MBR无MSR分区时的系统盘符----
)
if  not !bHvLab!==y (
   ::给EFI或者MSR分区分配盘符
   set bHvSetESP=n
   for %%i in (z y x w v u t s r q p o n m) do (
      if !bHvSetESP!==n ( if  not exist %%i: set LabelEFI=%%i&&set bHvSetESP=y )
   )
   echo list vol>%temp%\DiskPart.txt
   echo exit>>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt
   set /p NumVolESP=请输入GPT中ESP分区或MBR中MSR分区的卷编号,直接回车----
   echo select vol !NumVolESP!>%temp%\DiskPart.txt
   echo assign letter=!LabelEFI!>>%temp%\DiskPart.txt
   echo exit>>%temp%\DiskPart.txt
   diskpart /s %temp%\DiskPart.txt
)
   bcdedit /create {bootmgr} /d "Marc Boot Manager" >nul 2>nul
   bcdedit /set {bootmgr} device partition=\device\harddiskvolume!NumVolESP! >nul 2>nul


set     b8Boot=n
set /p  b8Boot=请问是否建8.1/8/7引导,默认不,如果要建输入小写y----
if !b8Boot!==y (
       ::创建8.1/8/7引导项
      set l_Sys8=null
      set /p l_Sys8=请问要为哪个盘的Windows 8.1/8/7建立引导,输入盘符----
     set    name_MenuWindows=Windows_8.1/8/7
     set /p name_MenuWindows=默认菜单项名字Windows_8.1/8/7,可自行输入不带空格名字,如Windows_7----

      bcdedit /create /d "!name_MenuWindows!" /application osloader>%temp%\fmid.txt
      for /f "tokens=2 delims= "  %%i in (%temp%\fmid.txt) do (set fmid=%%i)
      bcdedit /set !fmid! device partition=!l_Sys8!:
      if not !bIsUEFI!==n bcdedit /set !fmid! path \windows\system32\winload.efi
      if     !bIsUEFI!==n bcdedit /set !fmid! path \windows\system32\winload.exe
      bcdedit /set !fmid! osdevice partition=!l_Sys8!:
      bcdedit /set !fmid! systemroot  \windows
      bcdedit /displayorder !fmid! /addlast
)

set     b8VhdBoot=n
set /p  b8VhdBoot=请问是否建8.1/8/7 VHD引导,默认不,如果要建输入小写y----
if !b8VhdBoot!==y (
   ::创建8.1/8/7 VHD引导项
   set namePathVhd=null

   ::准备VHD系统文件与序号。
   set bHvLSr=n
   for /l %%i in (1,1,5) do (
      if !bHvLSr!==n (
         set /p LPartSource=请输入VHD系统文件所在盘,不带冒号----
         if not exist !LPartSource!: echo 这个盘符根本就没有使用了,你不要搞笑好吧
         if     exist !LPartSource!: set bHvLSr=y
      )
   )
   dir !LPartSource!:\*.vhd /b /s >%temp%\fSeek.txt
   echo 查找到!LPartSource!分区下所有VHD文件如下表
   echo -----------------------------------------------------
   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do ( set /a a+=1&&echo 系统映像:!a! %%i)
   set /a CountWim=!a!
   if !a!==0   echo 该分区无系统VHD文件,退出重来吧!&&goto End

   set    NumWimSource=1
   set /p NumWimSource=请输入VHD系统文件序号,我不检测无效序号,默认1----
   set bVldNSr=n
   for /l %%i in (1,1,!CountWim!) do ( if !NumWimSource!==%%i set bVldNSr=y   )
   if !bVldNSr!==n echo 你没有输入有效VHD系统文件序号,退出重来吧!&&goto End


   set /a a=0
   for /f "usebackq delims=" %%i in (%temp%\fSeek.txt) do (
      set /a a+=1
      if !a!==!NumWimSource! (
         set nameTmp=%%i
         echo 你选择的VHD系统文件是:%%i
      )
   )

      set   namePathVhd=!nameTmp:~3!

   set    name_MenuVHD=VHD_MBY
   set /p name_MenuVHD=输入菜单项名字,默认VHD_MBY,可自行输入,如MAXDOS_WYS----


      bcdedit /create /d "!name_MenuVHD!" /application osloader>%temp%\fmid.txt
      for /f "tokens=2 delims= "  %%i in (%temp%\fmid.txt) do (set fmid=%%i)
      bcdedit /set !fmid! device vhd=[!LPartSource!:]\!namePathVhd!
      if not !bIsUEFI!==n bcdedit /set !fmid! path \windows\system32\winload.efi
      if     !bIsUEFI!==n bcdedit /set !fmid! path \windows\system32\winload.exe
      bcdedit /set !fmid! osdevice vhd=[!LPartSource!:]\!namePathVhd!
      bcdedit /set !fmid! systemroot  \windows
      bcdedit /set !fmid! detecthal  yes
      bcdedit /displayorder !fmid! /addlast
)

if     !bIsUEFI!==n (
    set     bXP=n
    set /p  bXP=请问是否建XP引导,默认不,如果要建输入小写y----
   if !bXP!==y (
       ::创建XP引导项
      set l_SysXP=null
      set /p l_SysXP=请问要为哪个盘的XP建立引导,输入盘符----

     set    name_MenuXP=XP_MBY
     set /p name_MenuXP=输入菜单项名字,默认XP_MBY,可自行输入,如MAXDOS_WYS----

      bcdedit /create {ntldr} /d "!name_MenuXP!"
      bcdedit /set {ntldr} device partition=!l_SysXP!:
      bcdedit /set {ntldr} path \ntldr
      bcdedit /displayorder {ntldr} /addlast
    )
)
   goto End
)

if !OpChoice!==16 (

echo.
bcdedit /enum /v >%temp%\x.txt

::取得GUID所在行。
set  numOrder=null
set /a a=0
for /f "delims= " %%i in ( %temp%\x.txt ) do (
   set /a a+=1
   if %%i==displayorder set numOrder=!a!
)

find "description"  %temp%\x.txt >%temp%\m.txt

set /a a=0
for /f "skip=3 tokens=1,* delims= " %%i in ( %temp%\m.txt ) do (

   set    bDel=n
   set /a Tmp=!a!+1
   set /p bDel=系统启动菜单第!Tmp!项是:%%j,请问是否删除,默认不删,删除输入y----

   set /a numItem=!a!+!numOrder!
   if not !bDel!==n (
      set /a c=0
      for /f "tokens=1,* delims= " %%k in ( %temp%\x.txt ) do (
         set /a c+=1
         if !c!==!numItem! (
            if     !numItem!==!numOrder! (
               set item=%%l
               bcdedit /delete %%l >nul 2>nul
               bcdedit /delete %%l /f >nul 2>nul            
            )
            if not !numItem!==!numOrder! (
               set item=%%k
               bcdedit /delete %%k >nul 2>nul
               bcdedit /delete %%k /f >nul 2>nul
            )
         )
      )
   )
   set /a a+=1
)

del /f /s /q %temp%\x.txt>nul 2>nul
del /f /s /q %temp%\m.txt>nul 2>nul
bcdedit /enum
echo.
   goto End
)

:End
set bProceed=n
set /p bProceed=请问继续其它任务吗,重复运行默认应答选项有效,默认不n,直接回车/是输入小写y----
if !bProceed!==y goto op

del /f  /s /q %temp%\fSeek.txt>nul 2>nul
del /f  /s /q %temp%\fSrSeek.txt>nul 2>nul
del /f  /s /q %temp%\fDsSeek.txt>nul 2>nul
del /f  /s /q %temp%\dirPatSeek.txt>nul 2>nul
del /f  /s /q %temp%\dirDrvSeek.txt>nul 2>nul
del /f  /s /q %temp%\dirIESeek.txt>nul 2>nul
del /f  /s /q %temp%\fPatSeek.txt>nul 2>nul
del /f  /s /q %temp%\ImageInfo.txt>nul 2>nul
del /f  /s /q %temp%\DiskPart.txt>nul 2>nul
del /f  /s /q %temp%\tmp.txt>nul 2>nul
del /f  /s /q %~dp0fAppUntitled.txt>nul 2>nul
del /f  /s /q %~dp0fTmp.txt>nul 2>nul
del /f  /s /q %~dp0null>nul 2>nul
del /f  /s /q %temp%\Out_DiskPart.txt>nul 2>nul
del /f  /s /q %temp%\Out_tmp.txt>nul 2>nul
del /f  /s /q %temp%\tmp.txt>nul 2>nul
del /f  /s /q %~dp0fdid.txt>nul 2>nul
del /f  /s /q %~dp0fmid.txt>nul 2>nul

echo 任务结束时间是%time:~,2%点%time:~3,2%分%time:~6,2%秒
set "T2=%time%"
if "%T2:~,2%" lss "%T1:~,2%" (set Tday+=8640000)
set   /a "T_d=%Tday%+(%T2:~,2%*360000)+(%T2:~3,1%*60000+%T2:~4,1%*6000)+(%T2:~6,1%*1000+%T2:~7,1%*100)+(%T2:~9,1%*10+%T2:~-1%)-(%T1:~,2%*360000)-(%T1:~3,1%*60000+%T1:~4,1%*6000)-(%T1:~6,1%*1000+%T1:~7,1%*100)-(%T1:~9,1%*10+%T1:~-1%)"
set /a "ss=%T_d%/100%%60"
set /a "mm=%T_d%/6000%%60"
set /a "hh=%T_d%/360000%%1"
set /a "ms=%T_d%%%100"
echo 本次任务消耗时间为 %hh%:%mm%:%ss%.%ms%秒
pause
回复

使用道具 举报

21#
发表于 2014-4-4 08:24:57 | 只看该作者
看起来很厉害 下次一定试一下
回复

使用道具 举报

22#
发表于 2014-4-27 10:32:32 | 只看该作者
好东西必须顶你吖(^.^)
回复

使用道具 举报

23#
发表于 2014-4-28 15:48:25 | 只看该作者
好东东,支持一下
回复

使用道具 举报

24#
发表于 2014-5-1 20:37:53 | 只看该作者
更新得还挺快的(^.^)
回复

使用道具 举报

25#
发表于 2014-5-2 11:38:38 | 只看该作者
2011htpcfans,做的不错,很给力,再接再厉
回复

使用道具 举报

26#
发表于 2014-5-9 14:33:43 | 只看该作者
天神一样的楼主 太精彩了 最简单的命令行完成 超级难度的任务 谢谢分享
回复

使用道具 举报

27#
发表于 2014-5-9 19:17:19 | 只看该作者
楼主把你的这个也发一个word文档,来个图文说明就好了。
回复

使用道具 举报

28#
发表于 2014-6-7 10:38:33 | 只看该作者
楼主很厉害。
回复

使用道具 举报

29#
发表于 2014-6-19 19:55:04 | 只看该作者
不错哦,真的很好,支持一下。
需要用几次来熟悉下
回复

使用道具 举报

30#
发表于 2014-6-20 09:55:47 | 只看该作者
谢谢楼主的分享!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-2-16 21:38

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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