テキストエディタを自動起動する
基盤となるバッチファイルは作成されましたが、日々のメモを取るためのツールとしては完成度は低いまま。ここから何が必要かと言えば、テキストエディタの自動起動でしょう。今度はリスト02をご覧ください。
リスト02
@echo off
setlocal
set CLFile=%USERPROFILE%\Documents\ChangeLog.txt
set TmpFile1=%TEMP%\_input.txt
set UserName=Y.Akutsu
set MailAddress=xxx@cactus.ne.jp
set Editor=%windir%\System32\notepad.exe
if not exist %CLFile% (
echo off > %CLFile%
goto Action_Make
)
:Action_Make
echo %date%%time% %UserName% ^<%MailAddress%^> > %TmpFile1%
echo * >> %TmpFile1%
echo.>> %TmpFile1%
cmd /c %Editor% %TmpFile1%
copy /b %TmpFile1% + %CLFile% %TmpFile1% >>%TEMP%\NULL
move %TmpFile1% %CLFile% >>%TEMP%\NULL
goto end
:end
if exist %TEMP%\NULL del /f %TEMP%\NULL
endlocal
ご覧のとおりリスト01と大差ありません。追加したのはローカル環境変数「Editor」と、「cmd /c %Editor% %TmpFile1%」の2行だけ。前者ではメモ帳の実行ファイルである「%windir%\System32\notepad.exe」を定義し、後者は実際にメモ帳を実行しています。バッチファイルから外部コマンドを呼び出す場合、通常は「start」コマンドを使うのが通例かつ利便性が高いのですが、実際には、パラメータの渡し方にクセがあり、今回のケースではコマンドプロンプトウィンドウが起動し、自動的に閉じません。そこで、指定されたコマンドを実行した後、終了する「/C」を使用して「cmd.exe」を直接実行することにしました(図08~09)。
このバッチファイルを実行してみましょう。今度はメモ帳が自動的に起動するようになりました。「*(アスタリスク)」の後にメモなどを入力し、メモ帳終了時にうながされるファイルの保存を実行しますと、「ChangeLog.txt」にその入力結果が反映されます(図10~11)。
図10 コマンドプロンプトを起動し、「Test02.bat」と入力して[Enter]キーを押します。メモ帳が自動的に起動しますので、ChangeLogのコメントを入力してメモ帳を終了し、<保存する>ボタンをクリックします |
今回はメモ帳を使用しましたが、異なるテキストエディタをお使いの場合は、ローカル環境変数「Editor」を編集してください。例えば秀丸をお使いの場合、「set Editor="%ProgramFiles%\Hidemaru\Hidemaru.exe" /jx2,7」と変更します。「/jx」は起動時にカーソル位置を指定するためのオプションで、「jx2,7」は2行目の7桁目に移動するというもの。お使いのテキストエディタによって同様のオプションが用意されている可能性がありますので、色々とお試しください(図12~13)。
ちなみにテキストエディタに関する記述を取り除き、テキストファイル(ここでは「%TmpFile1%」)を直接実行する形式にしますと、Windows OSの関連付けを用いて起動します。