| 
 | 
 
@ECHO OFF 
rem 在win7pe等环境下建立原生和VBOOT驱动的VHD的子VHD的批处理  
color 1f 
cls 
echo 此脚本(批处理)功能:创建win2008r2/win7/2008/vista/2003/xp.vhd的子VHD。 
echo 若VHD所在分区是隐藏的,运行前须用bootice等工具将分区改为非隐藏,完成后再隐藏。 
echo 创建win2008r2/win7.vhd等原生VHD的子VHD时,须使用diskpart命令,该命令须运行在: 
echo winxp/2003/vista/2008/win7/2008r2/win7pe中,不能运行在DOS/xpe/2003pe环境中。 
echo 创建win2008/vista/2003/winxp.vhd等vboot驱动的VHD的子VHD时, 
echo 可运行在DOS/xpe/2003pe/win7pe、winxp及以上实体系统等以上任一环境中。 
echo 但须在VHD所在分区根目录下拷入vboot目录(须使用vboot目录下的命令)。 
echo 以上准备就绪后,推荐在win7pe环境中进行。 
echo. 
echo 按^C中止本脚本运行,否则继续运行本脚本。  
pause 
echo. 
echo 选择要创建子VHD的系统: 
echo 1-win8     (原生VHD) 
echo 2-win2008r2(原生VHD) 
echo 3-win7     (原生VHD) 
echo 4-win2008  (vboot驱动VHD) 
echo 5-winvista (vboot驱动VHD) 
echo 6-win2003  (vboot驱动VHD) 
echo 7-winxp    (vboot驱动VHD) 
echo. 
set /P sysno=请选择1-7(其他任意键退出): 
if "%sysno%"=="1" goto win8 
if "%sysno%"=="2" goto win2008r2 
if "%sysno%"=="3" goto win7 
if "%sysno%"=="4" goto win2008 
if "%sysno%"=="5" goto winvista 
if "%sysno%"=="6" goto win2003 
if "%sysno%"=="7" goto winxp 
goto end 
  
:win8 
set sysname=win8 
set vhddir=\vhd_sys 
set mainvhd=win8.vhd 
set subvhd=win8_CHILD.vhd 
set subvhdbak=win8_CHILD_BAK.vhd 
goto notvboot 
  
:win2008r2 
set sysname=win2008r2 
set vhddir=\vhd_sys 
set mainvhd=my_win2008r2.vhd 
set subvhd=my_win2008r2_CHILD.vhd 
set subvhdbak=my_win2008r2_CHILD_BAK.vhd 
goto notvboot 
  
:win7 
set sysname=win7 
set vhddir=\vhd_sys 
set mainvhd=my_win7.vhd 
set subvhd=my_win7_CHILD.vhd 
set subvhdbak=my_win7_CHILD_BAK.vhd 
goto notvboot 
  
:win2008 
set sysname=win2008 
set vhddir=\vboot_vhd 
set mainvhd=win2008.vhd 
set subvhd=win2008_child.vhd 
set subvhdbak=win2008_child_bak.vhd 
goto vboot 
  
:winvista 
set sysname=winvista 
set vhddir=\vboot_vhd 
set mainvhd=winvista.vhd 
set subvhd=winvista_child.vhd 
set subvhdbak=winvista_child_bak.vhd 
goto vboot 
  
:win2003 
set sysname=win2003 
set vhddir=\vboot_vhd 
set mainvhd=win2003.VHD 
set subvhd=win2003_child.vhd 
set subvhdbak=win2003_child_bak.vhd 
goto vboot 
  
:winxp 
set sysname=winxp 
set vhddir=\vboot_vhd 
set mainvhd=winxp.vhd 
set subvhd=winxp_child.vhd 
set subvhdbak=winxp_child_bak.vhd 
goto vboot 
  
:notvboot 
set drv=# 
for %%b in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%b:%vhddir%\%mainvhd% set drv=%%b: 
if %drv%==# goto nomainvhd 
if exist %drv%%vhddir%\%subvhd% del %drv%%vhddir%\%subvhd% 
if exist %drv%%vhddir%\%subvhdbak% del %drv%%vhddir%\%subvhdbak% 
echo create vdisk file="%drv%%vhddir%\%subvhd%" parent="%drv%%vhddir%\%mainvhd%" > "%drv%%vhddir%\createmp.txt" 
diskpart /s "%drv%%vhddir%\createmp.txt" 
del %drv%%vhddir%\createmp.txt 
copy %drv%%vhddir%\%subvhd% %drv%%vhddir%\%subvhdbak% 
echo. 
echo 已成功创建%sysname%系统原生VHD的子VHD! 
echo. 
pause 
goto end 
  
:vboot 
set drv=# 
for %%b in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%b:%vhddir%\%mainvhd% set drv=%%b: 
if %drv%==# goto nomainvhd 
if exist %drv%%vhddir%\%subvhd% del %drv%%vhddir%\%subvhd% 
if exist %drv%%vhddir%\%subvhdbak% del %drv%%vhddir%\%subvhdbak% 
%drv%\vboot\tools\x86\vbootctl creatediff %drv%%vhddir%\%subvhd% %drv%%vhddir%\%mainvhd% 
copy %drv%%vhddir%\%subvhd% %drv%%vhddir%\%subvhdbak% 
echo. 
echo 已成功创建%sysname%系统vboot驱动的VHD的子VHD! 
echo. 
pause 
goto end 
  
:nomainvhd 
echo. 
echo.未找到主VHD文件,按任一键退出...... 
echo. 
pause 
goto end 
  
:end 
color 0f 
cls 
 
 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |