本稿では、コマンドプロンプト上で動作するコマンドや、特定の作業を自動化するバッチファイルを使用し、ライフハック的な活用方法を紹介していきます。今回は忘れたくないことを記しておくTODOメモをバッチファイルで作成してみましょう。

TODOを作成するバッチファイル

企業にお勤めのビジネスユーザーはもちろん、日々の雑事をコンピューターで処理しているエンドユーザーも、作業をタスク化することで、円滑な処理が可能になります。このタスク化に必要なスケジューラーやTODOツールは、オンラインソフトウェアやWebアプリケーションなど様々なツールが用意されているため、改めてバッチファイルで管理する必要はないかもしれません。しかし、これらを自分自身の手で作成していくことに興味を持たれる方も多いのではないでしょうか。今回のレッツ! コマンドラインは、テキストファイルに日々のTODOを記録し、その当日に必要なタスクを表示するバッチファイルを作成してみましょう。

最初に必要なのがテキスト形式で構成されたTODOファイル。初期状態でTODOファイルは存在せず、既に存在する場合はタスクを書き込まなければなりませんので、ファイルの存在を確認するための処理が必要となります。まずはリスト01をご覧ください。

リスト01

@echo off
    setlocal
    set TodoFile=%USERPROFILE%\Documents\TODO.txt

    if exist %TodoFile% (
        echo 「%TodoFile%」が見つかりました
        goto end
    ) else (
        echo 「%TodoFile%」がありません
        echo off > %TodoFile%
        goto end
    )
:end
    endlocal

ポイントは5行目から12行目までの条件分岐です。あらかじめローカル環境変数で定義されている「%TodoFile%」が存在する場合は、直下の2行を実行。存在しない場合は8行目から12行目までの処理が実行されるため、メッセージを表示し、「echo off」コマンドで「%TodoFile%」を生成しています(図01~06)。

図01 [Win]+[R]キーを押し、ファイル名を指定して実行のテキストボックスに「notepad」と入力して<OK>ボタンをクリックします

図02 メモ帳が起動したらリスト01の内容を入力し、[Ctrl]+[S]キーを押します

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

図04 [Win]+[R]キーを押し、ファイル名を指定して実行のテキストボックスに「cmd」と入力して<OK>ボタンをクリックします

図05 コマンドプロンプトが起動したら、「Test01.bat」と入力して[Enter]キーを押します。一回目は「~がありません」とメッセージが表示されますが、二回目はファイルが作成されるため「~が見つかりました」とメッセージが表示されます

図06 「Test01.bat」を実行しますと、ドキュメントフォルダーに0バイトの「TODO.txt」が生成されます

今回新たに登場したのが「ラベル」という存在。本来バッチファイルは1行目から順番に処理されていきますが(条件分岐やループは別)、特定の分岐やループ実行時に異なる部分へ制御を移すために使用します。具体的には「goto」コマンドを使用し、移動先となる部分をラベル化するというもの。もっともバッチファイルをご覧になるとわかるように、リスト01でラベルを用いる必要はありません。しかし、このあとに解説する処理で必要となりますので、ここで説明しておきます。

リスト02a

@echo off
    setlocal
    set TodoFile=%USERPROFILE%\Documents\TODO.txt

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

:end
    endlocal

今度はTODOを入力する部分の処理を作成しましょう。リスト02aをご覧ください。こちらも5行目から10行目からが処理の主軸となります。5行目から6行目は単にメッセージを表示しているに過ぎません。実際の文字入力を担うのが7行目の「set /p INP="> "」。「set」コマンドにオプション「/p」を付けますと、標準入力された文字列を変数に保存することが可能になります。