_SUB USBDISK ENVI DISKLIST= ENVI^ EnviMode=1 SET &filtp=%~3 FDRV &Drvs=*: FORX * %&Drvs%,&D, {* PART list drv %&D%,&&V MSTR &&hd=<9>%&V% ^SET &Drv[%&hd%]=%%&Drv[%&hd%]%%%&D% } PART list disk,&&SYDISK forx * %&SYDISK%,&DDISK, {* PART -devidx list disk %&DDISK%,&&iDskInf MSTR &&hd,&&SZ,&&Bus,&&DskID=<1><2><9><~12>%&iDskInf% FIND $%&DskID%=, {* PART -devid list disk %&DDISK%,&&iDskInf MSTR &&DskID=<12>%&iDskInf% SED &DskID=0,USBSTOR\\DISK,,%&DskID% SED &DskID=0,SCSI\\DISK,,%&DskID% SED &DskID=0,\&VEN__,,%&DskID% SED &DskID=0,\&VEN_,,%&DskID% SED &DskID=0,&REV.*,,%&DskID% SED &DskID=0,PROD,,%&DskID% SED &DskID=0,\\.*,,%&DskID% SED &DskID=0,_, ,%&DskID% SED &DskID=0,&,,%&DskID% } IFEX #%Bus%<>%filtp%,EXIT - CALC &SZ=%&SZ%/1G#1 SET SZ=%&SZ%G ^SET DISKLIST=%DISKLIST%|(HD%&DDISK%): %&DskID% (%%&Drv[%hd%]%%) %&SZ% } IFEX |%DISKLIST%=,ENVI DISKLIST=没有发现磁盘 ENVI @LIST1.VAL=%DISKLIST% ENVI @LIST1.isel=1_END
可以参考PECMD示例文件