|  | 
| 看源码 _SUB ISO2GHOWIM
 EXEC =!ISOCMD.EXE -eject 0:
 TEAM ENVI &&GIPATH=|ENVI &&aGHOLS=|ENVI &&GLSinISO=|ENVI &&vln=|ENVI &&HD45=
 EXEC =!ISOCMD.EXE -mount %&FFDrv%: %1
 FORX %&FFDrv%:\*.GHO,ANYGHO,0,ENVI &aGHOLS=%&aGHOLS%%&NLDD%%ANYGHO%
 FORX @%&FFDrv%:\*,GHODIR,0,
 {
 FORX %GHODIR%\*.GHO,ANYGHO,0,ENVI &aGHOLS=%&aGHOLS%%&NLDD%%ANYGHO%
 FORX @%GHODIR%\*,GHO1DIR,0,
 {
 FORX %GHO1DIR%\*.GHO,ANYGHO,0,ENVI &aGHOLS=%&aGHOLS%%&NLDD%%ANYGHO%
 FORX @%GHO1DIR%\*,GHO2DIR,0,FORX %GHO2DIR%\*.GHO,ANYGHO,0,ENVI &aGHOLS=%&aGHOLS%%&NLDD%%ANYGHO%
 }
 }
 FORX *NL &aGHOLS,&vln,
 {
 FIND $%&vln%=,!
 {
 FNAM &HD45=%&vln%
 FIND $%&HD45%=HD4,! FIND $%&HD45%=HD5,! ENVI &GLSinISO=%&GLSinISO%%&vln%%&NLDD%
 }
 }
 TEAM ENVI &&aWIMLS=|ENVI &&WLSinISO=|ENVI &&R9=
 FORX %&FFDrv%:\*.WIM,ANYWIM,0,ENVI &aWIMLS=%&aWIMLS%%&NLDD%%ANYWIM%
 FORX %&FFDrv%:\*.ESD,ANYWIM,0,ENVI &aWIMLS=%&aWIMLS%%&NLDD%%ANYWIM%
 FORX @%&FFDrv%:\*,WIMDIR,0,
 {
 FORX %WIMDIR%\*.WIM,ANYWIM,0,ENVI &aWIMLS=%&aWIMLS%%&NLDD%%ANYWIM%
 FORX %WIMDIR%\*.ESD,ANYWIM,0,ENVI &aWIMLS=%&aWIMLS%%&NLDD%%ANYWIM%
 FORX @%WIMDIR%\*,WIM1DIR,0,
 {
 FORX %WIM1DIR%\*.WIM,ANYWIM,0,ENVI &aWIMLS=%&aWIMLS%%&NLDD%%ANYWIM%
 FORX %WIM2DIR%\*.ESD,ANYWIM,0,ENVI &aWIMLS=%&aWIMLS%%&NLDD%%ANYWIM%
 FORX @%WIM1DIR%\*,WIM2DIR,0,FORX %WIM2DIR%\*.WIM,ANYWIM,0,ENVI &aWIMLS=%&aWIMLS%%&NLDD%%ANYWIM%
 }
 }
 FORX *NL &aWIMLS,&vln,
 {
 FIND $%&vln%=,!CALL GetWIMVolumesInISO "%&vln%"
 }
 ENVI &GHOWIMLS=%&GLSinISO%%&WLSinISO%
 ENVI @GHOWIMOnTimer3=0
 ENVI @GHOWIMinISO.POSTMSG=#1
 _END
 
 _SUB GetWIMVolumesInISO
 TEAM ENVI &&WIMINFO=|ENVI &&vln=|ENVI &&F1=|ENVI &&cPOS1=0|ENVI &&cPOS2=0|ENVI &&Lc=0
 TEAM ENVI &&Wstr=|ENVI &&DISPOS=0|ENVI &&aSIZE=|ENVI &&aDESC=|ENVI &&bDESC=|ENVI &&szVol=
 FILE PPP.TXT
 FILE JJJ.TXT
 EXEC =!CMD.EXE /C imagex /info %1 >PPP.TXT
 CODE -UTF8,PPP.TXT,-UNICODE,JJJ.TXT
 READ JJJ.TXT,**,&WIMINFO
 FILE PPP.TXT
 FILE JJJ.TXT
 FORX *NL &WIMINFO,&vln,
 {
 MSTR &F1=<1>%&vln%
 FIND $%&F1%=<IMAGE,
 {
 LPOS &cPOS1=",1,%&vln%
 
 LPOS &cPOS2=",2,%&vln%
 
 CALC #&cPOS1 = %&cPOS1% + 1
 
 CALC #&Lc = %&cPOS2% - %&cPOS1%
 
 MSTR &Wstr=%&cPOS1%,%&Lc%,%&vln%
 
 }
 LPOS* &DISPOS=<TOTALBYTES>,1,%&F1%
 IFEX $%&DISPOS% = 1,
 {
 LPOS &cPOS1=>,1,%&vln%
 LPOS &cPOS2=<,2,%&vln%
 CALC #&cPOS1 = %&cPOS1% + 1
 CALC #&Lc = %&cPOS2% - %&cPOS1%
 MSTR &aSIZE=%&cPOS1%,%&Lc%,%&vln%
 CALC &aSIZE = %&aSIZE% / 1073741824#2
 IFEX $%&aSIZE% < 0.9, TEAM CALC &aSIZE = %&aSIZE% * 1024#1|ENVI &szVol=[%&aSIZE%MB]! ENVI &szVol=[%&aSIZE%GB]
 }
 LPOS* &DISPOS=<NAME>,1,%&F1%
 IFEX $%&DISPOS% = 1,
 {
 LPOS &cPOS1=>,1,%&vln%
 LPOS &cPOS2=<,2,%&vln%
 CALC #&cPOS1 = %&cPOS1% + 1
 CALC #&Lc = %&cPOS2% - %&cPOS1%
 MSTR &aDESC=%&cPOS1%,%&Lc%,%&vln%
 }
 LPOS* &DISPOS=<DISPLAYNAME>,1,%&F1%
 IFEX $%&DISPOS% = 1,
 {
 LPOS &cPOS1=>,1,%&vln%
 LPOS &cPOS2=<,2,%&vln%
 CALC #&cPOS1 = %&cPOS1% + 1
 CALC #&Lc = %&cPOS2% - %&cPOS1%
 MSTR &bDESC=%&cPOS1%,%&Lc%,%&vln%
 }
 FIND $%&F1%=</IMAGE>,
 {
 FIND $%&bDESC%=,ENVI &WLSinISO=%&WLSinISO%%~1-> %&Wstr%  %&aDESC% %&szVol%%&NLDD%!ENVI &WLSinISO=%&WLSinISO%%~1-> %&Wstr%  %&bDESC% %&szVol%%&NLDD%
 ENVI &bDESC=
 }
 }
 _END
 
 | 
 |