EXISTでモバを便利に

藤城 功司さん作の EXIST (vectorにあります)はドライブの有無を調べることが可能です。

exist a: if errorlevel 91 goto end

これを使ってモバの狭いRAMディスクを有効に使えそうなので、ちょっと書いてみました。

  1. ファイルの有無判別
  2. パスの半自動変更


ファイルの有無判別

頻繁に使うけどファイルサイズの大きなアプリケーションがあるとき、アプリケーション自体は 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
.....


主頁に戻る