藤城 功司さん作の EXIST (vectorにあります)はドライブの有無を調べることが可能です。
exist a: if errorlevel 91 goto end
これを使ってモバの狭いRAMディスクを有効に使えそうなので、ちょっと書いてみました。
頻繁に使うけどファイルサイズの大きなアプリケーションがあるとき、アプリケーション自体は ATAカード内に入れ バッチファイルのみRAMディスクに入れておくという使い方が便利になります(鬱陶しい Invalid Drive のエラーを防げます)。
バッチファイルの変更点は頁の最初に書いてある通りです。
また、「アプリケーションは 普段は ATAカードにあるけど、時々RAMディスクにもある。優先順位はRAMディスクが上」というときも便利ですよ。
if exist d:\term\pakacha.exe d: if exist d:\term\pakacha.exe goto pakacha exist a: if errorlevel 91 goto file- a: :pakacha cd \term pakacha %1 goto end :file- echo "pakacha.exe Not Found" :end cd\
日本語表示ドライバの置いているディレクトリ名と同じ環境変数を用意する、たとえば mgdisp2.sys を d:\util\dsp2に置いているなら モバDOS起動バッチファイル内で
set disp=dsp2としておくと、以下のバッチファイルをちょっと動かすだけで ATAカードの有無を判断してパスを変更してくれます。
@echo off exist a: if errorlevel 91 goto d-only set path=d:\util\%disp%;d:\util;a:\util;a:\bat goto end :d-only d: set path=d:\util\%disp%;d:\util; :end
ちなみに、私はそれに加えてモバDOS起動バッチファイルへの引数とバッチ内ラベルも統一していますので、たとえばDOS起動バッチファイル mg.bat を
d:\> mg dsp2と起動するとき、バッチファイルの内部で変数を受け渡すことによってバッチファイルを簡潔にすることができます。
set disp=%1 call (さっき書いたバッチファイル) goto %disp% ..... :dsp2 .....