|
本帖最后由 527104427 于 2017-7-4 01:28 编辑
看你这么积极,我就好人当到底吧,用下面的代码即可显示中文。
要修正原版的问题不是那么简单的,我也是花了不少时间去研究它,毕竟不是自己的工具,不可能完全理解原作的意思。
SET$ &NLDD=0D 0A
TEAM ENVI &hTMPWimInfo=| ENVI &WIMINFO=| ENVI &HEX_WIMINFO=| ENVI &Wstr=| ENVI &aSIZE=| ENVI &aDESC=| ENVI &bDESC=| ENVI &szVol=
EXEC* -hide &WIMINFO=wimlib-imagex.exe info "Z:\sources\install.esd" --xml
CODE *,%&WIMINFO%,*UNICODE,&HEX_WIMINFO
SED &HEX_WIMINFO=0,0x0D 0x0A,0x0D 0x00 0x0A,%&HEX_WIMINFO%
CODE *UNI,%&HEX_WIMINFO%,**UNICODE,&WIMINFO
SED &WIMINFO=0,><,>%&NLDD%<,%&WIMINFO%
FORX *NL &WIMINFO,&vln,
{*
MSTR * &F1=<1>&vln
FIND $%&F1%=<IMAGE,
{*
SED &Lc=0,[="], ,%&vln%
MSTR * &Wstr=<3>&Lc
}
LPOS* * &DISPOS=<TOTALBYTES>,1,&F1
IFEX $%&DISPOS%=1,
{*
SED &Lc=0,[\>\<], ,%&vln%
MSTR * &aSIZE=<2>&Lc
Calc_Part &aSIZE %&aSIZE%
ENVI &szVol=[%&aSIZE%]
}
LPOS* * &DISPOS=<NAME>,1,&F1
IFEX $[ %&DISPOS%<>1 & '%&aDESC%'='' ], 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 * &aDESC=%&cPOS1%,%&Lc%,&vln
SED &aDESC=0,\[,[,%&aDESC%
SED &aDESC=0,\],],%&aDESC%
}
LPOS* * &DISPOS=<DESCRIPTION>,1,&F1
IFEX $[ %&DISPOS%<>1 & '%bDESC%'='' ], LPOS* * &DISPOS=<DISPLAYDESCRIPTION>,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 $%&bDESC%<>, ENVI &bDESC=描述:%&bDESC%
}
FIND $%&F1%=</IMAGE>, TEAM ENVI &hTMPWimInfo=%&hTMPWimInfo%%&Wstr% %&aDESC% %&szVol% %&bDESC%%&NLDD%| ENVI &Wstr=| ENVI &aSIZE=| ENVI &aDESC=| ENVI &bDESC=| ENVI &szVol=
}
_SUB Calc_Part
ENVI &ax4=
ENVI &ax1=%2
CALC &ax1=%&ax1%
FORX * 1099511627776T 1073741824G 1048576M 1024K 0B ,&ax2,
{*
ENVI &ax3=%&ax4%
FIND $%&ax3%=, ENVI &ax3=KT
MSTR &ax4=-1,1,%&ax2%
SED &ax5=0,%&ax4%,,%&ax2%
IFEX $%&ax1%>=%&ax5%,
{*
CALC &ax6=%&ax1%/%&ax5%##01
TEAM ENVI &ax7=%&ax6%| ENVI &ax8=%&ax4%|
IFEX $%&ax6%>=1000, TEAM CALC &ax7=%&ax6%/1024##01| ENVI &ax8=%&ax3%|
EXIT
}
}
FIND $%&ax8%<>,!! TEAM ENVI &ax8= %&ax8%| FIND $%&ax8%<>B, ENVI &ax8=%&ax8%B
ENVI-ret %1=%&ax7%%&ax8%
_END
MESS. [%&hTMPWimInfo%] |
|