萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> 作業系統基礎知識

AUTOEXEC.BAT 逐行深度解析:Windows 98 開機批次檔完整邏輯

AUTOEXEC.BAT 是 DOS/Win9x 開機過程的最後一站,負責設定環境變數、載入驅動程式、啟動常駐程式。以 Windows 98 開機磁碟預設內容為例,逐行解析每段邏輯。

關鍵區塊解析

1. 環境初始化

@echo off
set EXPAND=YES
set DIRCMD=/O:N
set LglDrv=27 * 26 Z 25 Y ... 3 C
cls
  • EXPAND=YES:啟用 EBD.CAB 自動解壓。
  • DIRCMD=/O:N:dir 預設依名稱排序。
  • LglDrv:定義可用磁碟代號序列,供後續虛擬磁碟搜尋使用。

2. 虛擬磁碟 (RAM Drive) 建立與啟用

call setramd.bat %LglDrv%
set temp=%RAMD%:\
set tmp=%RAMD%:\
path=%RAMD%:\;a:\;%CDROM%:\
copy command.com %RAMD%:\ > nul
set comspec=%RAMD%:\command.com
copy extract.exe %RAMD%:\ > nul
copy readme.txt %RAMD%:\ > nul
  • setramd.bat 搜尋第一個可用磁碟代號建立 2 MB RAM Drive(ramdrive.sys)。
  • 將暫存目錄、PATH、COMSPEC 全指向 RAM Drive,大幅加速後續解壓與執行速度。
  • 複製核心指令解譯器與解壓工具至 RAM Drive。

3. EBD.CAB 存在性檢查與解壓

:ERROR
if exist ebd.cab goto EXT
echo Please insert Windows 98 Startup Disk 2
echo.
pause
goto ERROR

:EXT
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > nul
echo The diagnostic tools were successfully loaded to drive %RAMD%.
echo.
  • 若找不到 ebd.cab 提示插入第 2 片開機磁碟。
  • extract.exe 將診斷工具解壓至 RAM Drive。

4. 多重開機選單分流

if "%config%"=="NOCD" goto QUIT
if "%config%"=="HELP" goto HELP
lh %ramd%:\mscdex.exe /d:mscd001 /l:%CDROM%
echo.
goto QUIT

:HELP
cls
call help.bat
echo Your computer will now restart...
echo.
restart.com
goto QUIT

:QUIT
echo To get help, type HELP and press ENTER.
echo.
rem clean up environment variables
set CDROM=
set LglDrv=
  • %config% 由 CONFIG.SYS 的 menuitem 選項傳入(CD/NOCD/HELP)。
  • CD:載入 MSCDEX 光碟機驅動,指定裝置名 mscd001 與磁碟代號。
  • HELP:執行說明系統並重新開機。
  • 結束前清除環境變數避免污染。

核心設計模式

  1. RAM Drive 加速:將暫存、工具、解壓內容置於記憶體,避免磁碟 I/O 瓶頸。
  2. 模組化分流:透過 %config% 實現單一開機磁碟支援多種啟動模式。
  3. 錯誤處理迴路::ERROR 標籤配合 pause/goto 確保使用者確認後再重試。

理解此邏輯,即可客製化專屬開機磁碟(如加入網路驅動、防毒掃描、硬體診斷工具)。

copyright © 萬盛學電腦網 all rights reserved