Board logo

标题: 活动主分区、最后分区号与盘符的确定批处理 [打印本页]

作者: lianjiang2004     时间: 2007-5-9 07:51    标题: 活动主分区、最后分区号与盘符的确定批处理

活动主分区、最后分区号与盘符的确定批处理

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 ]
作者: adiwdmd     时间: 2007-5-10 09:13
批处理有问题。
有没有考虑过分区数超过10个的情况?
作者: lianjiang2004     时间: 2007-5-10 09:46
确实没有考虑这么多分区的问题。有缺陷。
谢谢指正。

[ Last edited by lianjiang2004 on 2007-5-10 at 10:08 AM ]
作者: lianjiang2004     时间: 2007-5-10 09:53
需要处理10个分区的,稍微改一下一楼的批处理即可。
作者: lianjiang2004     时间: 2007-5-10 10:16
1楼的批处理已修改过,已能处理10个以上分区。
作者: terse     时间: 2007-5-11 23:16
rem strings lines=add %lines%,1 这行的 rem 怎么没去掉?
作者: lianjiang2004     时间: 2007-5-12 08:11


  Quote:
Originally posted by terse at 2007-5-11 23:16:
rem strings lines=add %lines%,1 这行的 rem 怎么没去掉?

这行不需要了。删除即可。
原来用了行数来判断结束,现在改成无数据为结束了。不再需要。
作者: terse     时间: 2007-5-12 11:19


  Quote:
Originally posted by lianjiang2004 at 2007-5-12 08:11:

这行不需要了。删除即可。
原来用了行数来判断结束,现在改成无数据为结束了。不再需要。

RE:lianjiang2004
gdisk >%temp%\hdisk.ini
type %temp%\hdisk.ini | lmod /L2* [3] >%temp%\hdisk.txt
strings hn=linesize %temp%\hdisk.txt
strings hn=add %hn%,1
%hn%硬盘数
难道是strings版本的问题!
我这里没strings hn=add %hn%,1这一步不行!

在单硬盘的时候  如去掉 strings hn=add %hn%,1 这行 %hn%=0
加上hn=add %hn%,1 这行  %hn%=1

你上面的:
strings lines=LINESIZE mini_dd.txt
if %lines%#==0# goto fail
rem strings lines=add %lines%,1
按我这里的情况不用 strings lines=add %lines%,1  应该处理不了最后一个分区吧?

[ Last edited by terse on 2007-5-12 at 11:21 AM ]
作者: lianjiang2004     时间: 2007-5-12 12:36


  Quote:
Originally posted by terse at 2007-5-12 11:19:

RE:lianjiang2004
gdisk >%temp%\hdisk.ini
type %temp%\hdisk.ini | lmod /L2* [3] >%temp%\hdisk.txt
strings hn=linesize %temp%\hdisk.txt
strings hn=add %hn%,1
%hn%硬盘数
难道是st ...

不好意思,我记得在修改支持10个以上分区时,修改了结束的判断条件,才发现1楼的没改。
即把 if %line%#==%lines%# goto mini_1
改成if %lined%#==#  goto mini_1
作者: terse     时间: 2007-5-12 13:11


  Quote:
Originally posted by lianjiang2004 at 2007-5-12 12:36:


不好意思,我记得在修改支持10个以上分区时,修改了结束的判断条件,才发现1楼的没改。
即把 if %line%#==%lines%# goto mini_1
改成if %lined%#==#  goto mini_1

呵呵~  
我不是这个意思,
我想请教的是: 如果不用strings lines=add %lines%,1  那么%lines%总会比实践行数少1;
作者: lianjiang2004     时间: 2007-5-12 13:23


  Quote:
Originally posted by terse at 2007-5-12 13:11:

呵呵~  
我不是这个意思,
我想请教的是: 如果不用strings lines=add %lines%,1  那么%lines%总会比实践行数少1;

实际上行数并没少,这是由于判断条件的位置问题。
比如文件9行,8行处理完,就转回去,执行8+1,假如这时就判断行数是9就结束的话(即if %line%#==%lines%# goto mini_1),那么9行是不处理的,所以会少一行。
因此需要加上一行,就不会少了。
我现在不用行数判断,直接用读取的该行是否有数据来判断。没数据就结束。就不需要考虑加行数问题了。
作者: terse     时间: 2007-5-12 14:23


  Quote:
Originally posted by lianjiang2004 at 2007-5-12 13:23:

实际上行数并没少,这是由于判断条件的位置问题。...

我这里不是这样的!
strings hn=linesize %temp%\hdisk.txt
echo %hn%
hdisk.txt如果是一行的话,那%hn%怎么会是0
strings hn=linesize %temp%\hdisk.txt
strings hn=add %hn%,1
hdisk.txt同样一行 这样的话%hn%就会是1
作者: lianjiang2004     时间: 2007-5-12 14:49
把你的hdisk.txt文件格式贴出来看看。

另“type %temp%\hdisk.ini | lmod /L2* [3] ” 没用过,请教 lmod什么意思?
作者: lianjiang2004     时间: 2007-5-12 15:25
用你的批处理试了一下,确实要少一行,2行的就显示1行,一个硬盘的话,不加1,就是0了。呵呵。
我的minito生成文件没事,能正常使用。看了gdisk生成文件与minito的文件差别是minito的文件后要多一空行。
作者: terse     时间: 2007-5-12 15:35


  Quote:
Originally posted by lianjiang2004 at 2007-5-12 14:49:
把你的hdisk.txt文件格式贴出来看看。

另“type %temp%\hdisk.ini | lmod /L2* [3] ” 没用过,请教 lmod什么意思?

hdisk.txt就是硬盘信息  是GDISK的
hdisk.ini内容 :
Disk  Partitions  Cylinders  Heads  Sectors  Mbytes  Model
  1        6         9729     255      63   76319.1  UNKNOWN
lmod /L2* [3] ”处理后的hdisk.txt内容:
1        6         9729     255      63   76319.1  UNKNOWN
lmod /L2* [3]就是从hdisk.ini文件第二排的第三字节写入hdisk.txt
我这样处理是因为如果有两个硬盘(尤其U盘被认第一硬盘)  就有个提示选择那个硬盘的
你上面的如果处理两个以上硬盘;可能就有出错的机会

[ Last edited by terse on 2007-5-12 at 03:43 PM ]
作者: lianjiang2004     时间: 2007-5-12 15:47


  Quote:
Originally posted by terse at 2007-5-12 15:35:

hdisk.txt就是硬盘信息  是GDISK的
hdisk.ini内容 :
Disk  Partitions  Cylinders  Heads  Sectors  Mbytes  Model
  1        6         9729     255      63   76319.1  UNKNOWN
lmod /L2* [3 ...

我上面的处理双硬盘是可以的,但不能是u盘启动。也就是说假如u盘启动后盘符是A:可用,是C:不可用。
目前未对u盘进行处理。
作者: haiou327     时间: 2007-5-14 00:24
顶了!!!!!!!!!!!!!!!
作者: han2009     时间: 2007-5-15 17:59
创意非常好,还需要进一步完善一下
作者: cctv8068     时间: 2008-4-21 19:03
受教了,谢谢。
作者: 0451lym     时间: 2008-4-22 09:07
AUTOEXEC.BAT

@ECHO OFF
FOR %%X IN (A: C:) DO IF "%COMSPEC%"=="%%X\COMMAND.COM" SET YD=%%X>NUL
PATH=%YD%\;%YD%\SYS>NUL
FOR %%X IN (LYM AU WBAT XMSDSK SWSUBST OFF) DO IF NOT EXIST %YD%\SYS\%%X.EXE GOTO TC
AU
WBAT CLS (BLUE ON BLUE)
WBAT FILL18,4(1,17)(+GREEN ON BLUE)!FILL20,4(3,9)(+CYAN ON BLUE)!FILL20,14(3,7)(MAGENTA ON BLUE)!FILL24,4(1,17)(+BROWN ON BLUE)
WBAT TEXT18,4"纮羴聜脙膭艆茊菄!^^葓蓧蕣藡: %VER%A^^虒蛵螏蠌: 0451LYM^^袗褢茊菄覓訐詳諘:"
WBAT FILL24,22(1,30)(BLACK ON +GREEN)!TEXT24,23"逓邿酄帷,蹧猗悖浃濂姒绉瑷..."
VOL B:>BB
WBAT TEXT24,23"謻讞貥贆跉,蹧軠轁......      "
FOR %%X IN (A B) DO SWSUBST %%X:=ON
XMSDSK 12288 %RAM% /T /Y>NUL
IF NOT EXIST %RAM%\NUL GOTO TC
%RAM%
COPY %COMSPEC% %RAM%>NUL
SET COMSPEC=%RAM%\COMMAND.COM
LYM /Y /G%HDPMI% %RAM%>NUL
COPY %YD%\SYS\WBAT.EXE %RAM%\BAT\WBAT.COM>NUL
COPY %YD%\SYS\OFF.EXE %RAM%>NUL
STRINGS TEMP=READ %YD%\BB,3
VOL %YD%|FIND "%TEMP%">NUL
IF NOT ERRORLEVEL 1 SET A:=B:>NUL
IF EXIST %YD%\BB DELTREE /Y %YD%\BB>NUL
SET TEMP=%RAM%\TEMP
PATH=%RAM%\;%RAM%\BAT;%RAM%\UCDOS;%YD%\
VOL %YD%|FIND "2007-0518">NUL
IF ERRORLEVEL 1 SET YD=>NUL
IF NOT %YD%#==# DEL %YD%\SYS\LYM.EXE>NUL
LH %RAM%\SYS\ZENO.EXE /Q>NUL
LH %RAM%\SYS\KILLER.EXE>NUL
DRIVE.BAT IFS %C1% %C2% %C3% %C4% %C5% %C6% %C7% %C8% FXDISK HZ %C9% %C10% %C11% U
:TC
CLB
作者: 0451lym     时间: 2008-4-22 09:08
DRIVE.BAT

@ECHO OFF
FOR %%X IN (C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11) DO SET %%X=>NUL
STRINGS GO=TRUENAME .
IF %GO%==%RAM% SET GO=%GO%\
:KS
SHIFT
IF "%0"=="" GOTO U
GO %RAM%\SYS
GOTO %0
:IFS
SET TS=正在自动识别系统类型>NUL
CALL AUTS
LH %RAM%\SYS\IFS\HDPMI32
LH %RAM%\SYS\IFS\NDOS -MOUNTALL -CP:936
%RAM%\SYS\DRVTYPES /ND|FIND /I /V "%RAM%"|FIND ":">NUL
IF ERRORLEVEL 1 %RAM%\SYS\IFS\XMSMAN -C
GO %TEMP%
ECHO LIST>LIST
MINI -P -IFS -NOHP>MINI.TXT
LH %RAM%\SYS\IFS\HDPMI32
%RAM%\SYS\IFS\PSI LIST>PSI.TXT
TYPE PSI.OUT|FIND /I/V "EXTENDED"|FIND /I/V "FREE"|FIND /I/V "DISK">PSI.OUT
STRINGS PSI=READ PSI.OUT,1
STRINGS PF=MID %PSI%,4,1
MINI -TURN %PF%: -IFS -NOHP>LIST
FOR %%X IN (PSI PF) DO SET %%X=>NUL
GOTO KS
:FXDISK
SET TS=正在读取硬盘分区信息>NUL
CALL AUTS
GO %TEMP%
GHOST -DD>NUL
TYPE GHSTSTAT.TXT|FIND /I "DESC     ">DESC
TYPE GHSTSTAT.TXT|FIND /I/N "TYPE     ">TYPE
:INFO
STRINGS DESC=READ DESC,1
TYPE DESC|FIND /I/V "%DESC%">DESC
STRINGS TYPE=READ TYPE,1
TYPE TYPE|FIND /I/V "%TYPE%">TYPE
STRINGS WRITE INFO,%DESC%%TYPE%
IF NOT "%DESC%"=="" GOTO INFO
FOR %%X IN (DESC TYPE) DO DEL %%X
FIND /I/V "%YD%" INFO|FIND /I/V "%A:%"|FIND /I "FLOPPY">FDD
FOR %%X IN (YD A:) DO SET %%X=>NUL
FIND /I/V "FLOPPY" INFO|FIND /I/V "%RAM%">INFO
FIND /I "FAT" INFO>LS.TXT
FIND /I/V "FAT" INFO>>LS.TXT
TYPE LS.TXT|FIND ":">INFO
STRINGS ZID=LINESIZE PSI.OUT
IF NOT "%ZID%"=="0" STRINGS ZID=ADD %ZID%,2
STRINGS DISK1=READ LIST,1
STRINGS DISK1=LEFT %DISK1%,1
FOR %%X IN (ID DISK2) DO SET %%X=0>NUL
SET SB=HDD>NUL
ECHO  分区符   设备    卷标    系统   类型 激活 隐藏 磁盘容量  已用空间  可用空间>DISK.INI
ECHO 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪>>DISK.INI
:FXHDD
SET TS=正在将分区信息写入列表>NUL
CALL AUTS
IF "%ID%"=="%ZID%" GOTO FXFDD
STRINGS ID=ADD %ID%,1
STRINGS PSI=READ PSI.OUT,%ID%
SET R=>NUL
IF NOT %PSI%#==# SET R=REM >NUL
%R%STRINGS DISK1=ADD %DISK1%,1
%R%SET DISK2=0>NUL
%R%GOTO FXHDD
STRINGS DISK2=ADD %DISK2%,1
STRINGS PF=MID %PSI%,4,1
STRINGS AC=MID %PSI%,35,3
STRINGS HI=MID %PSI%,42,3
FOR %%X IN (#%AC% #%PF% #%HI%) DO IF %%X==#  GOTO FXHDD
SET PF=%PF%:>NUL
IF %AC%#==Yes# STRINGS WRITE S1.INI,%PF% = %DISK1%.%DISK2%:
DIRT %PF%\WINDOWS\SYSTEM32\  /Q /L:0 >NUL
IF %HI%#==Yes# IF %FPATH%#==# STRINGS WRITE HI.INI,%PF% = %DISK1%.%DISK2%:
DIRT /CLEARENV>NUL
IF "%AC%"=="Yes"  SET AC=★ >NUL
STRINGS FS=MID %PSI%,15,6
STRINGS TY=MID %FS%,1,4
STRINGS FS=MID %FS%,5,2
FOR %%X IN (%TY%) DO SET TY=%%X>NUL
STRINGS FS=MID %TY%%FS%   ,1,6
STRINGS TY=MID %PSI%,6,8
FOR %%X IN (%TY%) DO SET TY=%%X>NUL
IF "%TY%"=="Primary" SET TY=主  >NUL
IF "%TY%"=="Logical" SET TY=逻辑>NUL
STRINGS SI=MID %PSI%,23,9
STRINGS DW=PARSE %SI%,2
STRINGS SI=PARSE %SI%,1
STRINGS SI=RIGHT #        %SI% %DW%,9
STRINGS US=MID %PSI%,60,9
STRINGS DW=PARSE %US%,2
STRINGS US=PARSE %US%,1
STRINGS US=RIGHT #        %US% %DW%,9
STRINGS FR=MID %PSI%,71,9
STRINGS DW=PARSE %FR%,2
STRINGS FR=PARSE %FR%,1
STRINGS FR=RIGHT #        %FR% %DW%,9
SET DISK=%DISK1%.%DISK2%:>NUL
TYPE INFO|FIND /I/V "%PF%"|FIND /I/V "%DISK1%:%DISK2%"|FIND /I/V "%DISK%">INFO
ECHO %PF% = %DISK%>D1.INI
:FXHDD1
SET PSI=>NUL
VOL %PF%|FIND ":">LS.TXT
STRINGS LA=READ LS.TXT,1
IF NOT %LA%#==# STRINGS LA=MID %LA%        ,22,8
IF %LA%#==# SET LA=_未命名_>NUL
IF "%SB%"=="CD" IF "%LA%"=="_未命名_" SET LA=????????>NUL
ECHO %PF% = %DISK%  %SB%%CDID%  %LA%  %FS% %TY%  %AC%  %HI%%SI% %US% %FR%>>DISK.INI
FOR %%X IN (TY FS SI AC HI LA US FR DW PF DISK) DO SET %%X=>NUL
GOTO FX%SB%
:FXFDD
SET SB=FDD>NUL
FOR %%X IN (DISK1 DISK2 ID ZID) DO SET %%X=>NUL
STRINGS PSI=READ FDD,1
IF %PSI%#==# GOTO FXINFO
STRINGS PF=MID %PSI%,10,2
TYPE FDD|FIND /I/V "%PF%">FDD
VOL %PF%|FIND "-">NUL
IF ERRORLEVEL 1 GOTO FXFDD
SET FS=FAT  >NUL
GOTO ZHXX
:FXINFO
FIND /V ": [" INFO|FIND ": ">LS.TXT
FIND /V ": " INFO|FIND " [">S
TYPE INFO|FIND ": [">Z
SET R=REM >NUL
:FXINFO1
STRINGS Z=READ Z,1
IF %Z%#==# SET R=>NUL
%R%SET S=>NUL
%R%TYPE LS.TXT>%R%INFO
%R%GOTO FXUSB
TYPE Z|FIND /I/V "%Z%">Z
STRINGS S=READ S,1
TYPE S|FIND /I/V "%S%">S
STRINGS Z=MID %Z%,10,2
VOL %Z%|FIND "-">NUL
IF ERRORLEVEL 1 GOTO FXINFO1
STRINGS S=MID %S%,10,30
ECHO DESC     %Z% %S%>>LS.TXT
GOTO FXINFO1
:FXUSB
SET SB=USB>NUL
STRINGS PSI=READ INFO,1
IF %PSI%#==# GOTO SHSUCDX
STRINGS PF=MID %PSI%,10,2
TYPE INFO|FIND /I/V "%PF%">INFO
STRINGS DISK1=MID %PSI%,13,1
STRINGS DISK2=MID %PSI%,15,1
SET DISK=%DISK1%.%DISK2%:>NUL
FOR %%X IN (DISK1 DISK2) DO SET %%X=>NUL
SET FS=FAT  >NUL
GOTO ZHXX
:SHSUCDX
IF NOT "%CD%"=="Y" GOTO FXJS
SET TS=正在分配CD驱动器盘符>NUL
CALL AUTS
LH %RAM%\SYS\CD\SHSUCDX.COM  /D:?PATA-CD1,W /D:?SATA-CD1 /D:?_USB-CD1|FIND ":"|FIND /N ":">%TEMP%\CD.TXT
:FXCD
WBAT CURSOR 1
SET SB=CD
%R%GO %TEMP%
%R%TYPE CD.TXT>%R%CD
%R%TYPE DISK.INI|%R%FIND /I/V "  CD"|%R%FIND /I/V "%RAM%"|%R%FIND /I/V "屯">%R%DISK.INI
%R%SET R=REM >NUL
STRINGS PSI=READ CD,1
IF %PSI%#==# SET R=>NUL
%R%GOTO FXJS
STRINGS PF=MID %PSI%,6,2
STRINGS FS=MID %PSI%,11,4
SET FS=%FS% >NUL
STRINGS CDID=MID %PSI%,2,1
TYPE CD|FIND /I/V "%PF%">CD
:ZHXX
IF "%DISK%#"=="#" SET DISK=---->NUL
IF "%FS%#"=="#" SET FS=----->NUL
SET TY= ---->NUL
FOR %%X IN (US FR) DO SET %%X=--------->NUL
FOR %%X IN (AC HI) DO SET %%X=--->NUL
SET SI= -------->NUL
GOTO FXHDD1
:FXJS
ECHO %RAM% = ----  RAM  RAMDRIVE  -----  ----  ---  --- -------- --------- --------->>DISK.INI
ECHO 屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯>>DISK.INI
FOR %%X IN (STUBACT.LOG LIST PSI.OUT %RAM%\TEMPLAYO.CFG) DO IF EXIST %%X DEL %%X
FOR %%X IN (S Z CD REM FDD INFO LS.TXT PWLOG.TXT ) DO IF EXIST %%X DEL %%X
FOR %%X IN (CD CDID SB) DO SET %%X=>NUL
IF NOT EXIST HI.INI GOTO KS
TYPE HI.INI>D1.INI
DEL HI.INI
GOTO KS
:GCDROM
SET TS=正在安装GCDROM.SYS驱动>NUL
CALL AUTS
DEVICE.COM %RAM%\SYS\CD\GCDROM.SYS /D:SATA-CD1>NUL
SET CD=Y
GOTO KS
:VIDECDD
SET TS=正在安装VIDE-CDD.SYS驱动>NUL
CALL AUTS
DEVICE.COM %RAM%\SYS\CD\VIDE-CDD.SYS /D:PATA-CD1>NUL
SET CD=Y
GOTO KS
:QCDROM
SET TS=正在安装QCDROM.SYS驱动>NUL
CALL AUTS
DEVICE.COM %RAM%\SYS\CD\QCDROM.SYS /D:PATA-CD1>NUL
SET CD=Y
GOTO KS
:USBASPI
SET TS=正在搜索USB设备>NUL
CALL AUTS
DEVICE.COM %RAM%\SYS\USB\USBASPI.SYS>NUL
GOTO KS
:DI1000DD
SET TS=正在安装DI1000DD.SYS驱动>NUL
CALL AUTS
CTLOAD.COM %RAM%\SYS\USB\DI1000DD.SYS>NUL
GOTO KS
:ASPIDISK
SET TS=正在安装ASPIDISK.SYS驱动>NUL
CALL AUTS
CTLOAD.COM %RAM%\SYS\USB\ASPIDISK.SYS>NUL
GOTO KS
:USBCD
SET TS=正在安装USBCD.SYS驱动>NUL
CALL AUTS
DEVICE.COM %RAM%\SYS\USB\USBCD.SYS /D:_USB-CD1>NUL
SET CD=Y
GOTO KS
:NJUSBCDA
SET TS=正在安装NJUSBCDA.SYS驱动>NUL
CALL AUTS
DEVICE.COM %RAM%\SYS\USB\NJUSBCDA.SYS /D:_USB-CD1>NUL
SET CD=Y
GOTO KS
:HZ
GO %RAM%\UCDOS
rem CALL CLS PB
CTTY NUL
RD16
KNL
PY
UCTS 中国DOS联盟 → 0451LYM → %VER%    Ctrl + Alt + Del 重启
WBAT CLS (BLUE ON BLUE)
WBAT FILL18,4(1,17)(+GREEN ON BLUE)!FILL20,4(3,9)(+CYAN ON BLUE)!FILL20,14(3,7)(MAGENTA ON BLUE)!FILL24,4(1,17)(+BROWN ON BLUE)
WBAT TEXT18,4"我的镜像恢复系统!^^版本信息: %VER%A^^友情制作: 0451LYM^^当前进程提示:"
WBAT FILL24,22(1,30)(BLACK ON +GREEN)
GOTO KS
:UHCI
SET TS=正在安装UHCI.EXE驱动>NUL
CALL AUTS
LH %RAM%\SYS\MOUSE\UHCI.EXE>NUL
GOTO KS
:OHCI
SET TS=正在安装OHCI.EXE驱动>NUL
CALL AUTS
LH %RAM%\SYS\MOUSE\OHCI.EXE>NUL
GOTO KS
:CTMOUSE
SET TS=正在安装CTMOUSE.EXE驱动>NUL
CALL AUTS
LH %RAM%\SYS\MOUSE\CTMOUSE.EXE /Y /B>NUL
GOTO KS
:U
MEM /C|FIND "DOSKEY"|IF ERRORLEVEL 1 LH %RAM%\SYS\DOSKEY>NUL
GO %GO%
SET GO=>NUL
IF EXIST %RAM%\BAT\DLMM.BAT DLMM
IF %0#==U# U
作者: 0451lym     时间: 2008-4-22 09:10
不知道能不能看明白,最近太忙了!
请自己分析吧!!