さて、これで二つのバッチファイルを作成したことになりますが、やはり一つのファイルにまとめた方が利便性も向上することでしょう。そこで、起動オプションによって動作が異なるバッチファイルを作成します。まずはリスト05をご覧ください。

リスト05

@echo off
    setlocal
    set TodoFile=%USERPROFILE%\Documents\TODO.txt
    set YYYYMMDD=%DATE:~0,10%

    set TMP01=%1
    set CMDOPT=%TMP01:~1,1%
    if "%CMDOPT%" == "a" goto TodoMake
    if "%CMDOPT%" == "e" goto TodoExecute
    if "%1" == "" goto HelpMsg

:TodoCheck
    if not exist %TodoFile% (
        echo off > %TodoFile%
        goto TodoMake
    )

:TodoMake
    echo 「2010/11/01(半角空き)予定の内容」と入力し、[Enter]キーを押してください。
    echo -----
    set /p INP="> "
    echo %INP% >> %TodoFile%
    goto end

:TodoExecute
    findstr %YYYYMMDD% %TodoFile% >>%TEMP%NULL
    if %ERRORLEVEL%==1 goto end
    if %ERRORLEVEL%==0 findstr %YYYYMMDD% %TodoFile%
    goto end

:HelpMsg
    echo %~n0: [/a][/e]
    echo   /a  Add TODO
    echo   /e  List TODO

:end
    if exist %TEMP%\NULL del /f %TEMP%\NULL
    endlocal

いくつかの冗長的な部分を削り、スクリプトとして動作する部分を加えることで、一般的なコマンドと同じようにコマンドラインオプションに対応しました。6行目から10行目に加えた条件分岐により、「test05.bat /a」と実行することでラベル「TodoMake」にジャンプし、Test03.batと同じくTODOの追加を実行します。「test05.bat /e」と実行すれば、ラベル「TodoExecute」にジャンプし、Test04.batと同じくTODOの表示を行ないます。何もオプションを付けていない場合はラベル「HelpMsg」にジャンプし、使い方を表示します(図19~22)。

図19 メモ帳を起動し、リスト05の内容を入力して[Ctrl]+[S]キーを押します

図20 ダイアログが起動したら、保存先をデスクトップに変更し、ファイル名のテキストボックスに「"Test05.bat"」と入力して<保存>ボタンをクリックします

図21 コマンドプロンプトを起動し、「Test05.bat」と入力して[Enter]キーを押します。これで同バッチファイルの使い方が表示されます

図22 「Test05.bat /a」と入力して[Enter]キーを押せばTODOの登録が、

「Test05.bat /e」と入力して[Enter]キーを押せばTODOの表示が実行されます

ちなみに本稿では「Test~」と味気ないファイル名を付けていますが、お使いになるときは「TODO.bat」などわかりやすいバッチファイル名に変更してください。