#!PECMD
//由DVD008的 VHD.ZIP 中的批处理改造而来

//LOAD_VHD 
//参数： 文件路径名 [盘符] [分区]
//盘符*表示自动
//分区默认为1
_SUB LOAD_VHD 
    FIND $  =  %~1, EXIT _SUB
    ENVI &&DRV=%~2
    ENVI &&PART=%~3
    FDIR  --fullfile &&FNAME=%~1
    FIND $ * = %&DRV%, ENVI &DRV=
    FIND $  = %&PART%, ENVI &PART=1
    FIND $ * = %&PART%, ENVI &PART=1
    ENVI &&drv_cmd=
    FIND $  = %&DRV%,! ENVI &&drv_cmd=& echo assign letter=%&DRV%

    ENVI  &&_cmd=(Echo select vdisk file="%&FNAME%" &Echo attach vdisk &Echo select vdisk file="%&FNAME%" &select partition %&PART% %&drv_cmd% &echo exit)
    exec =!cmd /c %&_cmd% | diskpart
_END


//UNLOAD_VHD  
//参数： 文件路径名
_SUB UNLOAD_VHD 
    FIND $  =  %~1, EXIT _SUB
    FDIR  --fullfile &&FNAME=%~1

    ENVI  &&_cmd=(Echo select vdisk file="%&FNAME%" &Echo detach vdisk &echo exit)
    exec =!cmd /c %&_cmd% | diskpart
_END

_SUB REG_VHD
    regi HKCR\.vhd\=VHD 文件
    ENVI &&VHDICO=shell32.dll,72
    IFEX %&CurDir%\vhd.ico,!!  ENVI &VHDICO=%&CurDir%\vhd.ico
    regi HKCR\.vhd\DefaultIcon\=%&VHDICO%
    regi HKCR\.vhd\shell\* 映射VHD虚拟磁盘文件\command\=PECMD LOAD %&CurFile% load_vhd "%L"
    regi HKCR\.vhd\shell\* 卸载VHD虚拟磁盘\command\=PECMD LOAD %&CurFile% unload_vhd "%L"
    //regi HKCR\.vhd\shell\* 卸载虚拟磁盘\! 
_END

_SUB VHD_MAIN
   FIND $   load_vhd = %~1, CALL LOAD_VHD   %2 %3 %4
   FIND $ unload_vhd = %~1, CALL UNLOAD_VHD %2 
   FIND $    reg_vhd = %~1, CALL REG_VHD
_END

//LOGS *x.log
CALL VHD_MAIN %*


//用法： 
// (1)注册VHD文件;注册后右键菜单操作 ：LOAD VHD.WCS reg_vhd
// (2)程序加载VHD文件 ：LOAD VHD.WCS   load_vhd  文件路径名 [盘符] [分区] 
// (2)程序卸载VHD文件 ：LOAD VHD.WCS unload_vhd  文件路径名
