|
原帖由 mygamexxx 于 2012-3-17 21:51 发表 
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=207212&extra=page%3D1
运行SHOW_PART_TP.WCS后的问题。
PECMD版本
139086
//函数:SHOW_PART_TP
//参数1:磁盘
//参数2:类型
//参数3:X为排除选取,否则一般选取
//参数4:H为隐藏,否则显示
_SUB SHOW_PART_TP
ENVI &&&EnviMode=1 //避免讨厌的空变量问题
ENVI &&磁盘=%1
ENVI &&tp0=%2
ENVI &&X=%3 //排除
ENVI &&op=%4 //隐藏
ENVI &&全部分区=
ENVI &&分区=
ENVI &&分区信息=
ENVI &&tp=
ENVI &&ntp=
PART list part %&磁盘%,&全部分区
forx * %&全部分区%,&分区,
{
PART -hextp list part %&磁盘%#%&分区%,&分区信息
MSTR &tp=<2>%&分区信息%
FIND $H=%&op%,! CALC #&ntp=0xEF & %&tp% //显示
FIND $H=%&op%,!! CALC #&ntp=0x10 | %&tp% //隐藏
FIND $=%&tp%,! IFEX $0=%&ntp%,! FIND $X=%&X%,! IFEX $%&tp% = %&tp0%,!! IFEX $%&tp% = %&ntp%,! PART -super %&磁盘%#%&分区% %&ntp%
FIND $=%&tp%,! IFEX $0=%&ntp%,! FIND $X=%&X%,!! IFEX $%&tp% = %&tp0%,! IFEX $%&tp% = %&ntp%,! PART -super %&磁盘%#%&分区% %&ntp% //排除
}
_END
//调用示例,这只是一个示例,以供研究之用;不能随便调用,及其危险。实际中必须根据实际来调用。
//本人不建议这种笼统的操作
//实际必须一个一个分区的操作
//SHOW_PART_TP 0 0x15 //显示全部 0x15
//SHOW_PART_TP 0 0x5 X H //隐藏除0x05外全部
出问题可能是 SHOW_PART_TP 0 0x15
原来有个0x15的垃圾分区(可能是垃圾数据) 。 0x15类型WINDOWS不理会, 所以能启动。
显示后变为0x05, 成了扩展分区。 如果本来不是合格的扩展分区(如垃圾数据), 或内部逻辑分区有问题。
这对windows将是一个灾难。因为windows必须处理0x05 类型。
[ 本帖最后由 2012abc19701 于 2012-3-17 22:24 编辑 ] |
|