AUTOEXEC.BAT とはバッチファイルの一つで、MS-DOS の起動時に自動実行されるものです。各種設定を行ったり、必要なプログラムを実行させたりすることで、ユーザーの望む環境整備を行うことができます。なお、AUTOEXEC.BAT と普通のバッチファイルの違いは、起動時に自動実行されるかどうか、だけであり、バッチファイルで行えることはすべて AUTOEXEC.BAT の中でも可能となっています。
バッチファイルの作成は、プログラミングい通じるところもあるため、ここでは一般的と思われるものだけを解説します。
(1) @ECHO OFF
(2) @cls
(3) loadhigh c:\windows\nlsfunc.exe
c:\windows\country.sys
(4) PROMPT $P$G
(5) REM
下行はハイバーネーションファイルを作成するものです
(6) if not exist c:\save2dsk.bin
c:\thinkpad\phdisk /c /f <c:\thinkpad\yes
(7)
c:\windows\cwcdata\cwcdos.exe
(8) PATH C:\THINKPAD;%PATH%
(9) set
PATH=%%PATH%;C:\SYS\bin;C:\SYS\VTEXT;C:\SYS;
(10) SET
PS2MSG=C:\THINKPAD\PS2.MSG
(11) LH MSCDEX
/D:CDROM /L:Q /E /M:16
入力したコマンドを再表示します。バッチファイルには、複数のコマンドを列記することができますが、それぞれのコマンドを実行する場合に、画面に出力するかどうかを制御します。バッチファイルを作成している時は、どのコマンドが本当に実行されているか、確認するために表示させたほうが良いわけですが、バッチファイルが完成すると、一つの処理として実行するため、いちいちコマンドがひょ時されると、わずらわしく感じてしまうため、コマンド出力を抑止します。
書式 ECHO ON/OFF/文字列
標準状態では ECHO ON となっています。オプションを指定しないと、現在の設定を表示します。ECHO コマンドに引数として文字列を与えると、画面に指定された文字列を表示します。このため、バッチファイルでメッセージ表示する場合に用いられます。
なお、先頭に@がついていますが、これは、コマンド自体を ECHO OFF にする指定です。ECHO OFF を実行すると、ECHO されませんが、実行した ECHO コマンド自体はデフォルトの ECHO ON が有効になっているため、表示されてしまいます。このため、多くのバッチファイルでは、ECHO OFF とセットで cls を用いて画面消去を行っています。
画面を消去します。CLear Screen の略です。
書式 cls
常駐プログラムを UMB に読み込むプログラムです。常駐プログラムとは、プログラムを実行するとメモリ中に存在しつづけ、機能を提供する特殊なプログラムで、TSR Terminate Stay Redsident とも呼ばれます。TSR はいろいろな機能拡張を行ってくれるため、非常に便利なのですが、反面メモリを占有しつづけるため、場合によっては、アプリケーションが必要とするメモリが不足して、アプリケーションが起動できなくなることがあります。また、その動作原理上、プログラムが暴走すると、システム全体の暴走を招くため、その使用にあたっては、十分注意する必要があります。私は以前、DOS 用のスクリーンセーバー機能をもつ TSR を常駐させていたところ、一太郎で作成中の文書が消えるというトラブルに遭遇したことがあります。この TSR は EMS を使用するのですが、EMS 使用時に勝手に乗っとりをしてしまうため、アプリケーションが EMS に保管していたデータを失ってしまったのでした。バージョンアップで対応されるまで、まさかそんな原因とは露知らず、驚かされました。
書式 loadhigh 実行するプログラム
なお、loadhigh 指定を行っていても、UMB に組込めるだけの空きがない場合には、コンベンショナルメモリに組込まれます。
コマンドプロンプトを設定します。MS-DOS を起動させた場合に、C> とか C:\> とか表示されるあれを設定するものです。いろいろと設定はあるのですが、あまり凝った設定をすると、画面書換が遅くなってしまったりしますので、シンプルなものが一番良いでしょう。
書式 PROMPT
オプション
$P:カレントパス
$D:カレントドライブ
$G:不等号記号(>)
$E:エスケープシーケンス
例では、$P$G となっているので、カレントパスに不等号マークが付きます。ディレクトリの階層が深いと、プロンプトが長くなるため、場合によっては $D を使うこともあります。
ECHO と PROMPT をうまく活用すると、簡単なメニューを作成することもできます。使用するメモリが少ないというメリットがあります(笑)。
これは命令ではなく、注釈行を示すものです。コメントなどを入れる場合に使います。良く、注釈行として : を使っている例を見かけますが、本来 : はラベルを作るもので、本来的には REM とすべきです。ただし、REM よりは : のほうが見やすいんで、つい多用してしまいます。
書式 REM 文字列
ECHO ON の場合、REM も画面出力されます。
コマンド検索パスを設定します。MS-DOS ではコマンドとして実行できるプログラムファイルは BAT COM EXE の拡張子をもつファイルですが、実行する時点で、これらのファイルがカレントディレクトリに存在するか、フルパスで指定する必要があります。しかし、いちいちコマンドの存在するディレクトリへ移動することは面倒であり、またフルパスでの指定も、打鍵数を増やして、誤入力を引き起こす要因となるため、あまりお薦めできるとは言えないものがあります。そこで、コマンド検索パスへこのディレクトリを設定しておくことで、MS-DOS が実行プログラムを勝手に探してくれるようになります。
書式 PATH パス名
例をあげましょう。たとえば、bakana.com という実行形式のファイルがあり、これが C:\APP ディレクトリにあるとします。カレントディレクトリが C:\atti だとすると、パスが通っていないと、
C:\ATTI>C:\APP\bakana
とするか、
C:\ATTI>CD
\APP
C:\APP>bakana
とする必要があります。これが、パスを通していると、
C:\ATTI>bakana
とするだけで実行できます。ちなみに、Windows 9x のデフォルトパスは Path=C:\Windows;C:\Windows\Command となっています。なので、Windows に標準添付のコマンド類は、どこにコマンドがあるかを意識しないで、使用することができるのです。
パスの評価は、先頭から順に検索していきますので、同じファイル名のコマンドが存在すると、パスの指定の早いものが実行されることになります。
環境変数を設定します。環境変数とは、バッチファイルで使用できる変数で、各種コマンドが参照して、いろいろな動作を行います。どのような環境変数が必要なのかは、コマンドの説明書などを読むことになります。代表的な環境変数としては、PATH 、 PROMPT、 COMSPEC、 TZ、 などがあります。
書式 set PATH=環境変数