AUTOEXEC.BAT
AUTOEXEC.BAT(オートエグゼック・バット)は、DOS系オペレーティングシステムで利用されるシステムファイルの名前である。中身はテキスト形式のバッチファイルであり、ブートデバイスのルートディレクトリに置かれる。
AUTOEXECとは "automatic execution"(自動実行)の略であり、システム起動時にコマンド群を自動実行させる機能を持つことに由来する。このようなかばん語にしたのは、FAT系ファイルシステムのファイル名の長さ制限に対応するためである。「オートエクゼ」などと略されることもある。
使用法
[編集]AUTOEXEC.BAT が使われるのは、MS-DOSとそれをベースとしたWindows(Windows 3.xまでとWindows 9x系)である。このファイルはオペレーティングシステムの立ち上げ時、CONFIG.SYSが処理された後で実行される。Windowsでは、これはグラフィカル環境が開始する前になされる。CONFIG.SYSとは異なり、AUTOEXEC.BAT内のコマンドはDOSプロンプトから入力可能である。このファイルは単にユーザーがコンピュータを起動したとき自動的に実行したいコマンドを入れているだけである。
よく見られる AUTOEXEC.BAT の使い方としては、環境変数を設定し、ウイルススキャナーや何らかのシステム拡張やユーティリティを動作させ、低レベルで動作するドライバハンドラ(例えばリアルモードのマウスやCD-ROMドライバなど)を起動させたりする。
Windows Me では環境変数の設定のみを行うが[1]、これを変更することも可能である[2]。
Windows NT とその系統の Windows XP や Windows Vista は、ユーザーがログオンした際に AUTOEXEC.BAT を調べる。Windows Me と同様、環境変数の設定以外は無視される[3]。
Windows上で起動時に実行したいアプリケーションはレジストリに記述する。
例
[編集]初期のDOSでは、デフォルトのAUTOEXEC.BATは極めて単純だった。date
コマンドとtime
コマンドは、初期のPCがバッテリバックアップされたリアルタイムクロックを備えていなかったため、必須だった。
echo off
cls
date
time
ver
アメリカ仕様以外の環境では、キーボードドライバも必要である(例えばフランス語版ならKEYBFR)。その後、様々なサードパーティ製デバイスドライバを起動することが多くなった。次の例は、DOS 5.x での基本的なコマンドだけで構成したAUTOEXEC.BATである。
@echo off
prompt $P$G
PATH=C:\DOS;C:\WINDOWS
set TEMP=C:\TEMP
set BLASTER=A220 I7 D1 T2
lh smartdrv.exe
lh doskey
lh mouse.com /Y
win
この例では共通の環境変数を設定した後、6行目でディスクキャッシュ SmartDrive をロードし、DOSのキーボードとマウスのドライバを起動してから、最後にWindowsを起動している。prompt
コマンドは、DOSプロンプトを単純な "C>" から "C:\>" に変更している。
一般に .SYS ファイルは CONFIG.SYS から呼び出し、SmartDrive のような.EXE プログラムはAUTOEXEC.BATでロードする。マウスなどのデバイスは、.SYS ファイルとして CONFIG.SYS でロードすることもできるし、.COM として AUTOEXEC.BAT でロードすることもでき、製造業者によって採用する技法が異なる[4]。
行の先頭にREMがあるのは注釈を意味し、AUTOEXEC.BATの一部として実行されることはない。"REM"のついた行はコメント行として使われたり、トラブルシューティングなどのためにドライバを起動しないようにするときなどに使われる。同様のことはコロンを2つ、あるいはコロンと半角スペースを行の先頭につけることでも実現される(::、: )。
MS-DOS 6 およびそれ以降では、DOSのブートメニューは設定変更可能である。そのため、各種プログラム(DOSゲームやWindowsなど)に対応してブート設定を最適化させることができる。
@echo off
prompt $P$G
PATH=C:\DOS;C:\WINDOWS
set TEMP=C:\TEMP
set BLASTER=A220 I7 D1 T2
goto %CONFIG%
:WIN
lh smartdrv.exe
lh mouse.com /Y
win
goto END
:XMS
lh smartdrv.exe
lh doskey
goto END
:END
goto %CONFIG%
という行は、DOSに CONFIG.SYS
で定義されたメニューエントリを参照することを指示するものである。そして得られたプロフィール名に従って必要なドライバやユーティリティを設定する。設定完了後 goto
コマンドで :END
セクションまで飛ばす。:END
以降の記述は全プロフィールで共通である。
DOSと Win 9x のデュアルブート
[編集]Windows 95 を既に DOS や Windows がインストールされた環境にインストールすると、CONFIG.SYS と AUTOEXEC.BAT を CONFIG.DOS と AUTOEXEC.DOS に移動させようと試みる。これは Windows 9x と DOS の間でデュアルブートを容易にさせようとしてのことである。DOSでブートする際には、それらを一時的に CONFIG.SYS と AUTOEXEC.BAT に戻し、Win95版のファイルは .W40
ファイルとしてバックアップ保存する。
Windows 9x は偽のMSDOS.SYSファイルもインストールする。このファイルには自動的に Windows に移行するかどうかも含めたシステムのブート手順を示すスイッチがいくつか含まれている。DOSプロンプトで立ち上げるには、この "BootGUI" オプションを "0" にセットする必要がある。そうするとシステムの動作はそれ以前の DOS/Windows ペアのようになる。WindowsはDOSプロンプトから "WIN" と入力することで起動できる。
カルデラの DR-DOS 7.02 かそれ以降をインストールすると、Windows版のファイルは AUTOEXEC.BAT のままでよく、DR-DOS は AUTODOS7.BAT というファイル名を使用する。CONFIG.SYS も違う名前となっており、DCONFIG.SYS である[5]。
Windows NT と OS/2
[編集]Windows NT系では、同様の機能を持つファイルとしてAUTOEXEC.NTがあり、%SystemRoot%\system32
ディレクトリに置かれている。このファイルはオペレーティングシステムの起動処理では使われず、MS-DOSアプリケーションをロードしたときなど MS-DOS環境が起動したときに実行される。
Windows NT 系システムでもルートディレクトリにAUTOEXEC.BATが置かれている場合がある。Windowsはその中の"SET"文と"PATH"文だけを認識し、全ユーザー向けの環境変数設定に使用する。このファイルシステムがFATであれば、同じところにMS-DOSもインストールすると、2つのOSの間で AUTOEXEC.BAT が共有されることになる。ただし、そのような使い方をする人は滅多にいないので、このファイルはたいていの場合空である。
OS/2 はAUTOEXEC.BATの代わりに startup.cmd を使用する。
脚注
[編集]- ^ "Subst" Command Does Not Work in Autoexec.bat File in Windows Millennium Edition
- ^ “Some features of MS-DOS 8.0”. 22 October 2010時点のオリジナルよりアーカイブ。2010年11月21日閲覧。
- ^ INFO: Configuring Parsing of the AUTOEXEC.BAT File
- ^ Mouse Doesn't Work with MS-DOS Shell
- ^ http://www.drdos.com/dosdoc/usergeng/01ugch1.htm