我又加了一个"判断系统安装在哪一个驱动器上"的子程序TESTSYSD.BAT,枚举c-z,看是否有\SYSTEM32\CONFIG\SAM 文件来判断。
修改后的如下:
主程序:MAIN.BAT
@ECHO OFF
CALL TestBOOT.bat C D E F G H I J K L M N O P Q R S T U V W X Y Z
IF %BOOTDrv%*==* GOTO errboot
set WDIR=
type %BOOTDrv%:\boot.ini | tfind "Microsoft" | lmod /L1 /B()\= set wdir= > temp.bat
call temp.bat
del temp.bat
CALL TESTSYSD.BAT C D E F G H I J K L M N O P Q R S T U V W X Y Z
ECHO SET WINDIR=%SYSDrv%:\%WDIR% >TEMP.BAT
CALL TEMP.BAT
DEL TEMP.BAT
GOTO EXIT
:errboot
echo no system file: boot.ini !
:EXIT
-----------------------
子程序:TestBOOT.bat
@ECHO OFF
SET BOOTDrv=
:LOOP
DReady %1
IF NOT ERRORLEVEL 1 IF EXIST %1:\BOOT.INI GOTO FOUND
SHIFT
IF %1*==* GOTO END
GOTO LOOP
:FOUND
SET BOOTDrv=%1
:END
--------------------------
子程序:TESTSYSD.BAT
@ECHO OFF
SET SYSDrv=
:LOOP
DReady %1
IF NOT ERRORLEVEL 1 IF EXIST %1:\%WDIR%\system32\config\SAM GOTO FOUND
SHIFT
IF %1*==* ECHO "NOT FOUND SYSTEM FILES!"
EXIT
GOTO LOOP
:FOUND
SET SYSDrv=%1
:END
=======================================
变量含义:
BOOTDrv:BOOT.INI文件所在驱动器
SYSDrv:系统所在驱动器
WDIR:系统所在目录
WINDIR:系统所在驱动器+系统所在目录
Freebsd网站架设\局域网维护管理\硬件维修\电路图纸
欢迎到 振兴电子
http://zxdz.8800.org