无忧启动论坛

标题: 一键恢复里如何隐藏分区?(差最后一条命令了) [打印本页]

作者: lxl1980199    时间: 2007-11-19 20:36
标题: 一键恢复里如何隐藏分区?(差最后一条命令了)
自己修改的下面的参数,

就是在硬盘最后分一个区~~

还差把新分的区隐藏

请高手指点一下~~


// ****************************************************************************************************************
// F11_AutoCreatePartition.PQS:在第一块硬盘的最后建立第一个分区使用空间的1/2 + 200MB大小的主分区
// 本脚本的设计目标是适应各种情况的硬盘。
// 脚本创建者:Climbing(QQ:653668, Email:xclimbing@msn.com, Homepage:http://www.nufans.net/dvbbs)
// 创建日期:2004.03.17
// 目前本脚本运行状态:初步测试运行正常,但没有运行各种极限情况下的测试,因此需要进一步测试
// ****************************************************************************************************************
// 允许用户在操作后手工重新启动计算机,否则将自动重新启动计算机
Allow Manual Reboot
//默认情况下不检测坏扇区,提高操作速度
Set Default Bad Sector Test State OFF
// 选择第一块硬盘
Select Disk 1
//选择第一个分区
Select Partition First
Dim PriSize
// 检测第一个分区的使用空间,将PriSize设置成其使用空间的1/2再加上200M,否则恐怕不够用
PriSize = GetUsedAmount / 2 + 2048
// 检测当前硬盘上的主分区数量
Dim PriNum
Dim i
i = 1
PriNum = 0
Select Partition FIRST
DO WHILE i < GetTotalPartitions
     IF IsPrimary Then
          PriNum = PriNum + 1
     End If
     Select Partition Next
     i = i + 1
Loop
IF IsPrimary Then
     PriNum = PriNum + 1
End If
// 检测硬盘上是否有扩展分区,如果有,也算是一个主分区
dim ExtNum
ExtNum = GetPartitionNumber Extended
If  ExtNum <> 0 Then
     PriNum = PriNum + 1
End If
// 只有主分区数量小于4才可以继续
IF PriNum < 4 Then
     // 如果存在扩展分区,则选择扩展分区,让它占满前后所有的未分配空间
     If ExtNum <> 0 Then
          Select Disk 1
          Select Partition Extended
          Resize Max
     End if
     // dOperPnum用来保存操作过多少分区
     Dim dOperPnum
     dOperPnum = 0
     // bMove 用来判断是否进行了空间腾出操作,如果是,刚为后面的空间移动提供判断基础
     Dim bMove
     bMove = 0
     // dLastOpPar保存最后一次操作的分区编号
     Dim dLastOpPar
     // 如果当前未分配空间数量已经满足需要,将不需要进行重新分配空间操作
     If GetTotalUnallocatedSpaces < PriSize Then
          //选择最后一个分区并判断其是否为主分区
          Select Partition Last
          Check
          // FreeSpace用来保存已经腾出的空间
          Dim FreeSpace
          FreeSpace = 0
          // NeedSpace用来保存还需要腾出多少空间
          Dim NeedSpace
          NeedSpace = PriSize
          Dim dTmp
          dTmp = 0
          // 从最后一个分区循环往前操作以腾出需要的空间
          i = 0
          Do While FreeSpace < PriSize  
               // 将当前操作分区扩到最大
               Resize Larger Max
               // 检测该分区未使用空间是否满足要求,如果满足,空出需要空间,如果不满足,继续操作
               IF GetUnusedAmount >= NeedSpace Then
                    //改变该分区的大小,在其后面空出需要大小的空间(即NeedSpace变量保存的值)
                    Resize Space After NeedSpace
                    FreeSpace = FreeSpace + NeedSpace
                    bMove = 1
               Else
                    // 如果本分区剩余空间大于100M,则将本分区缩小未使用空间减100M的大小
                    If GetUnusedAmount > 100 Then
                         dTmp = GetUnusedAmount - 100
                         Resize Space After dTmp
                         FreeSpace = FreeSpace + dTmp
                         NeedSpace = PriSize - FreeSpace
                         bMove = 1
                    End If
               End If
               i = i + 1
               dOperPnum = dOperPnum + 1
               // 如果循环到了第一个分区但空间仍然不足,则直接退出循环
               If i < GetTotalPartitions Then
                    Select Partition Previous
                    Check
                    dLastOpPar = GetPartitionNumber Next
               Else If FreeSpace < PriSize Then
                    dLastOpPar = GetPartitionNumber First
                    Exit Loop
               End If
          Loop
     End If
     // 如果没有进行分区分割操作,两个原因:1、磁盘空间不足;2、未分配空间已经够用
     If bMove = 0 Then
          dLastOpPar = GetPartitionNumber First
          dOperPnum = GetTotalPartitions
          Select Partition First
          Move Left Max
     Else               
          // 开始将前一个循环中腾出的空间进行后移操作
          Dim LastMoveParType
          Dim CurParNum
          i = 1
          If bMove = 1 Then
               Select Disk 1
               Select Partition dLastOpPar
               CurParNum = GetPartitionNumber Next
               If IsPrimary Then
                    LastMoveParType = 1
               Else
                    LastMoveParType = 0
               End If
               Do While i < dOperPnum
                    Select Partition Next
                    If IsPrimary Then
                         If LastMoveParType = 0 Then
                              Select Disk 1
                              Select Partition Extended
                              Resize Min
                         End If
                    Else
                         If LastMoveParType = 1 Then
                              Select Disk 1
                              Select Partition Extended
                              Resize Left Boundary Max
                         End If
                    End If
                    Select Partition CurParNum
                    Move Left Max
                    If IsPrimary Then
                         LastMoveParType = 1
                    Else
                         LastMoveParType = 0
                    End If
                    CurParNum = GetPartitionNumber Next
                    i = i + 1
               Loop
               // 选中最后的未分配空间(刚才空出的)
               Select Unallocated After Selected Partition
               //在硬盘最后创建指定大小的分区,分区卷标为SYS_GHOST,当然,你可以根据实际情况修改卷标。
               Create /FS=FAT32 /LABEL=""
               // 将这个分区转换为主分区
               
          End If
     End If
End If



请问上面的如何修改??(隐藏新分区)
谢谢了~~~
作者: ali88home    时间: 2007-11-19 23:48
你好像漏掉一些吧!好像执行完就自动隐藏了二主分区
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=24723

[ 本帖最后由 ali88home 于 2007-11-19 11:50 PM 编辑 ]




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3