2021-04-03 11:29:15 496

目前在制作WinPE时,有这样的需求,PECMD中不知道怎么来写这个脚本?

需求:在PE启动后,将电脑的硬盘分区全部卸载,再将硬盘的最后一个分区装载为C盘使用

现在只能手动先看硬盘有几个分区(用三个分区示例),然后用DISK来实现

DISK ,0,1,1,,
DISK ,0,2,1,,
DISK ,0,3,1,,
DISK c:,0,3,1,,

如果分区多了,这个就无效了

求助!!!

收藏
分享
最新回复 (5)
  • 超级版主 caocaofff 2021-04-03 11:31:39

    你这个可以参考盘符理顺代码:

    //盘符整理子程序
     _SUB  FREEUSB
    	FORM &T=%D%
    	//TEAM FORM  &T,&B=%D%| MESS  T=[%T%] B=[%B%]
    	FIND %D%:\>0,!! FIND %D%:\>2,!TEAM ENVI &RP=%&D%| EXEC @=%WinDir%\System32\mount.cmd %D%:
    	FIND $%&T%=DRIVE_FIXED,!! FIND $%&RP%=NA,! SUBJ *%&D%  //U盘后的固定磁盘
    	FIND $DRIVE_USBFLASH = %&T%, ENVI  &T=DRIVE_USBDISK    //USB软盘(DRIVE_USBFLASH) ,当作 USB硬盘(DRIVE_USBDISK)
    	FIND $%&T%=DRIVE_USBDISK,!! SUBJ *%&D%  //U盘
    	FIND $%&T%=DRIVE_USBDISK,!! FIND $%&RP%=NA, ENVI &RP=%&D%  //RP:第一个U盘
    	MSTR &D=%&I%,1,%&DRVS%
    	CALC &I=%&I% + 1
     _END
    
     _SUB ORDER_DRIVE  
    	 TEAM ENVI &&DRVS=CDEFGHIJKLMNOPQRSTUV****| ENVI  &&I=2| ENVI  &&D=C| ENVI &&RP=NA| ENVI &&T=| ENVI &&B=   //初始化
    	 LOOP $%&D%=*,! CALL FREEUSB
    	 //重新加载HD,USB
    	 SHOW *F:0
    	 SHOW *U:-1,,,O
    	 //登录后,重新加载USB
    	 //RUNS PECMD.EXE EXEC PECMD.EXE TEAM WAIT 1000|SHOW U:0,U_DISK 
     _END 
    我的博客:cboot.org
  • 士兵 max 2021-07-28 23:16:23

    请问这个SUB 支持ESP挂载盘符吗?

    如何增加把 盘符 设为 可以调用的变量,例如

    BATCH 用的是set, set volumeC=c: 

    CMD就可以用%volumeC% 调用 c:

  • 超级版主 caocaofff 2021-07-29 09:03:08
    max 请问这个SUB 支持ESP挂载盘符吗? 如何增加把 盘符 设为 可以调用的变量,例如 BATCH 用的是set, set volumeC=c: CMD就可以用%volumeC% 调用 c:

    不支持给EFI分区分配盘符。

    设置环境变量可以使用PECMD的ENVI、SET命令,或者直接调用cmd去执行set xx=xx,

    我的博客:cboot.org
  • 士兵 max 2021-07-31 01:05:47

    缺 程式第5行 mount.cmd 

  • 超级版主 caocaofff 2021-10-07 12:04:10
    max 缺 程式第5行 mount.cmd

    可能是这个

    上传的附件:
    • mount_3.5.zip (上传时间:2021-10-07 12:04:10,大小:10.92K,下载次数:3)
    我的博客:cboot.org
返回