A:\>CD GAME リターンキー
A:\GAME>TOMG リターンキー
(ゲームが終了したら)
A:\GAME>CD \ リターンキー
これはかなり面倒です。
そこで、こんな面倒くさいことはコンピュータのご主人様である私たちがやらなくていいような方法があります。つまり、この入力もコンピュータに代理で行わせるのです。
具体的には、以下のようなTOMG.BATというファイルを作成します。
@ECHO OFF
CD \GAME
TOMG
CD \
作成したら、コマンドラインから次のように入力します。
A:\>TOMG リターンキー
いかがですか?ちゃんと実行できましたでしょうか?
バッチファイルというのは、こんな風にキーボードからの面倒な入力を代行させるファイルです。しかし、MS-DOSには、このバッチファイルを利用して、簡単なプログラムを作成できるようなコマンド(バッチファイル専用コマンド)が用意されています。これらについては暇なときに「バッチファイルで手抜きプログラミング」とでも題して口座でも書いてみようと思います。
A:\>LHA E BATCP134.LZH リターンキー
すると、カレントディレクトリにBATCP.COMとBATCP.DOCの二つのファイルが解凍されます。
えっ、何ですか?
「コマンドまたはファイル名が違います.」
と表示されて先に進めないですって!!あれれれ、それはLHAがインストールされていませんね。ここからダウンロードしてください。
それでは早速バッチファイルを通常のプログラムのように変換してみましょう。次のようなバッチファイルを造ってください。ファイル名はTEST.BATとして話を進めます。
@ECHO OFF
ECHO Hello World!
バッチファイルができましたら、次のようにしてください。
A:\>BATCP TEST.BAT リターンキー
あれ?さっきまではバッチファイルだったのに、まか不思議、カレントディレクトリをDIRなどしてのぞいてみてください。ななななんと、TEST.COMなる立派な実行ファイルが生成されています。
もちろん
A:\>TEST リターンキー
とすることで、ちゃんと動いてくれます。
しかし・・・これではまだまだです。このTEST.COMはこのままではやばいんです。それは次のように確かめてみてください。
A:\>TYPE TEST.COM リターンキー
なにやら訳の分からない文字列が表示されます。「そりゃそうだろうな、おまえ、バイナリをタイプできるのか!!」と聞こえてきそうですが、目を凝らして最後の方をご覧ください。
@ECHO OFF
ECHO Hello World!
なんだかどこかでみたような文字列です。
そうなんです、このままではファイルの中身は暗号化できていません。そこで次のように実行してみてください。
A:\>BATCP -P TEST.BAT [パスワード] リターンキー
この[パスワード]には、任意の半角英数8文字を入れてください。暗号化されたファイルを元のバッチファイルに戻したいときに、このパスワードが必要になります。しかもパスワードを打ち込まないでコンパイルすると、元に戻せませんのでご注意ください。
@ECHO OFF
ECHO これはテストファイルです。
BU -nNAME LINEINPUT 名前を入力してください:
IF "%NAME%"=="" GOTO ERR
ECHO あなたの名前は%NAME%さんですね。
GOTO END
:ERR
ECHO 名前を入力しませんでした。
:END
このバッチファイルと、BU.COMを準備して、次のようにします。
A:\>BATCP -B -p NAME.BAT リターンキー
これでもう、このバッチファイルは単独で動くことができます。BU.COMは必要なくなります。
A:\>BATCP -R NAME.COM パスワード リターンキー
ここで入力するパスワードを忘れてしまうとせっかく作ったバッチファイルを復活できませんので、くれぐれもパスワードを忘れないように気をつけてください。