AUTOEXEC.BAT

AUTOEXEC.BATは、DOS系オペレーティングシステムで利用されるシステムファイルの名前である。中身はテキスト形式のバッチファイルであり、ブートデバイスのルートディレクトリに置かれる。

AUTOEXECとは "automatic execution"の略であり、システム起動時にコマンド群を自動実行させる機能を持つことに由来する。このようなかばん語にしたのは、FAT系ファイルシステムのファイル名の長さ制限に対応するためである。「オートエクゼ」などと略されることもある。

1. 使用法
------

AUTOEXEC.BAT が使われるのは、MS-DOSとそれをベースとしたWindowsである。このファイルはオペレーティングシステムの立ち上げ時、CONFIG.SYSが処理された後で実行される。Windowsでは、これはグラフィカル環境が開始する前になされる。CONFIG.SYSとは異なり、AUTOEXEC.BAT内のコマンドはDOSプロンプトから入力可能である。このファイルは単にユーザーがコンピュータを起動したとき自動的に実行したいコマンドを入れているだけである。

よく見られる AUTOEXEC.BAT の使い方としては、環境変数を設定し、ウイルススキャナーや何らかのシステム拡張やユーティリティを動作させ、低レベルで動作するドライバハンドラを起動させたりする。

Windows Me では環境変数の設定のみを行うが、これを変更することも可能である。

Windows NT とその系統の Windows XP や Windows Vista は、ユーザーがログオンした際に AUTOEXEC.BAT を調べる。Windows Me と同様、環境変数の設定以外は無視される。

Windows上で起動時に実行したいアプリケーションはレジストリに記述する。

2. 例
----

初期のDOSでは、デフォルトのAUTOEXEC.BATは極めて単純だった。dateコマンドとtimeコマンドは、初期のPCがバッテリバックアップされたリアルタイムクロックを備えていなかったため、必須だった。

echo off cls date time ver

アメリカ仕様以外の環境では、キーボードドライバも必要である。その後、様々なサードパーティ製デバイスドライバを起動することが多くなった。次の例は、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 でロードすることもでき、製造業者によって採用する技法が異なる。

行の先頭にREMがあるのは注釈を意味し、AUTOEXEC.BATの一部として実行されることはない。"REM"のついた行はコメント行として使われたり、トラブルシューティングなどのためにドライバを起動しないようにするときなどに使われる。同様のことはコロンを2つ、あるいはコロンと半角スペースを行の先頭につけることでも実現される。

MS-DOS 6 およびそれ以降では、DOSのブートメニューは設定変更可能である。そのため、各種プログラムに対応してブート設定を最適化させることができる。

@echo off prompt $P$G PATH=C:\DOS;C:\WINDOWS set TEMP=C:\TEMP set BLASTER=A220 I7 D1 T2 goto %CONFIG%

WINlh smartdrv.exe lh mouse.com /Y win goto END

XMSlh smartdrv.exe lh doskey goto END

END<WtXmlEndTag />

goto %CONFIG% という行は、DOSに CONFIG.SYS で定義されたメニューエントリを参照することを指示するものである。そして得られたプロフィール名に従って必要なドライバやユーティリティを設定する。設定完了後 goto コマンドで :ENDセクションまで飛ばす。:END以降の記述は全プロフィールで共通である。

3. 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 である。

4. 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 を使用する。

5. 脚注
-----

6. 関連項目
-------

DOS 、MS-DOS
IO.SYS
MSDOS.SYS
COMMAND.COM
CONFIG.SYS

7. 外部リンク
--------

[1]