活动主分区、最后分区号与盘符的确定批处理
ghost自动备份时,活动主分区、最后分区号与盘符的确定思路和批处理
使用了第三方软件minito(for dos)。
【说明,本人水平有限,相信有更好的处理办法。欢迎批评指正】
DOS下解决方案。
所需工具:minito,strings,ifs
一,思路
1,用minitow获得硬盘信息。
由于可能要在NTFS分区创建新目录,因此获取的是加载了ifs驱动后的dos下盘符。不创建目录的话,不需要确定最后分区对应的盘符。
示例如下
N:N : PRI/LOG ACT HIDE ID FILE SYSTEM LABEL TOTALmb FREEmb
1:1 = C: PRIMARY YES NO 0B FAT32 WINXP 7538 3619
1:2 = E: PRIMARY NO YES 17 NTFS/HPFS 7467
1:3 = F: LOGICAL NO NO 07 NTFS/HPFS 10001
1:4 = G: LOGICAL NO NO 07 NTFS/HPFS 15005
1:5 = D: LOGICAL NO NO 0B FAT32 APPZ 30004 17234
1:6 = H: LOGICAL NO NO 07 NTFS/HPFS 44453
2,对上面的信息进行处理,获得活动主分区,及最后分区和最后分区对应的盘符。
二,批处理。【已能处理10个以上分区的情况。】
@echo off
:BEGIN
set actp=
if exist mini_dd.txt del mini_dd.txt
minito /nohp /p /ifs>mini_dd.txt
rem 文件行数
strings lines=LINESIZE mini_dd.txt
if %lines%#==0# goto fail
rem strings lines=add %lines%,1
set line=1
echo 硬盘信息:
:mini
strings line=add %line%,1
rem if %line%#==%lines%# goto mini_1
strings lined=read mini_dd.txt,%line%
if %lined%#==# goto mini_1
strings row0=mid %lined%,4,1
if %row0%#==# goto mini_2
strings row1=left %lined%,4
goto mini_3
:mini_2
strings row1=left %lined%,3
:mini_3
strings row3=mid %lined%,8,2
strings row5=mid %lined%,19,3
if not %actp%#==# goto mini_4
if not %row5%#==YES# goto mini_4
set actp=%row1%
:mini_4
set lastp=%row1%
set lastd=%row3%
echo %lined%
goto mini
:mini_1
echo.
echo 请根据上面显示的硬盘信息确认识别结果。
echo.
echo 自动识别结果:
echo 活动分区是%actp%
echo 最后分区是%lastp%
echo 最后分区对应的盘符是%lastd%
echo.
pause
goto exit
:fail
cls
echo.
echo 很抱歉,本工具采用的软件未能获得有效硬盘信息。
echo.
pause
:exit
[ Last edited by lianjiang2004 on 2007-5-12 at 01:07 PM ]
ghost自动备份时,活动主分区、最后分区号与盘符的确定思路和批处理
使用了第三方软件minito(for dos)。
【说明,本人水平有限,相信有更好的处理办法。欢迎批评指正】
DOS下解决方案。
所需工具:minito,strings,ifs
一,思路
1,用minitow获得硬盘信息。
由于可能要在NTFS分区创建新目录,因此获取的是加载了ifs驱动后的dos下盘符。不创建目录的话,不需要确定最后分区对应的盘符。
示例如下
N:N : PRI/LOG ACT HIDE ID FILE SYSTEM LABEL TOTALmb FREEmb
1:1 = C: PRIMARY YES NO 0B FAT32 WINXP 7538 3619
1:2 = E: PRIMARY NO YES 17 NTFS/HPFS 7467
1:3 = F: LOGICAL NO NO 07 NTFS/HPFS 10001
1:4 = G: LOGICAL NO NO 07 NTFS/HPFS 15005
1:5 = D: LOGICAL NO NO 0B FAT32 APPZ 30004 17234
1:6 = H: LOGICAL NO NO 07 NTFS/HPFS 44453
2,对上面的信息进行处理,获得活动主分区,及最后分区和最后分区对应的盘符。
二,批处理。【已能处理10个以上分区的情况。】
@echo off
:BEGIN
set actp=
if exist mini_dd.txt del mini_dd.txt
minito /nohp /p /ifs>mini_dd.txt
rem 文件行数
strings lines=LINESIZE mini_dd.txt
if %lines%#==0# goto fail
rem strings lines=add %lines%,1
set line=1
echo 硬盘信息:
:mini
strings line=add %line%,1
rem if %line%#==%lines%# goto mini_1
strings lined=read mini_dd.txt,%line%
if %lined%#==# goto mini_1
strings row0=mid %lined%,4,1
if %row0%#==# goto mini_2
strings row1=left %lined%,4
goto mini_3
:mini_2
strings row1=left %lined%,3
:mini_3
strings row3=mid %lined%,8,2
strings row5=mid %lined%,19,3
if not %actp%#==# goto mini_4
if not %row5%#==YES# goto mini_4
set actp=%row1%
:mini_4
set lastp=%row1%
set lastd=%row3%
echo %lined%
goto mini
:mini_1
echo.
echo 请根据上面显示的硬盘信息确认识别结果。
echo.
echo 自动识别结果:
echo 活动分区是%actp%
echo 最后分区是%lastp%
echo 最后分区对应的盘符是%lastd%
echo.
pause
goto exit
:fail
cls
echo.
echo 很抱歉,本工具采用的软件未能获得有效硬盘信息。
echo.
pause
:exit
[ Last edited by lianjiang2004 on 2007-5-12 at 01:07 PM ]
Windows 一键还原
http://www.yjhy.com
http://www.yjhy.com
