読者です 読者をやめる 読者になる 読者になる

kurukuru-papaのブログ

主に、ソフトウェア開発に関連したメモを書き溜めたいと思います。

サクラエディタでバッチファイルを書く

背景

Windowsを使っていて、簡単ないくつかのコマンドを組み合わせてバッチファイルを作りたくなってきました。Windows上でバッチファイルを作成する場合は、バッチファイルをエディタで作成し、コマンドプロンプトを起動し、作成したバッチファイルを実行する。バッチファイルに問題があれば、再編集し、再実行するという流れになりますが、いくつかのウインドウを行ったり来たりして手間がかかります。

そこで、私が使用しているサクラエディタに注目していました。以前から、このエディタには外部コマンドを実行する機能があるのは知っていたのですが、まったく使用していませんでした。お手軽にバッチファイルを書くという観点で、サクラエディタを見た場合、どのような機能があるのか調べてみました。

外部コマンド実行機能

メニューの「ツール>外部コマンド実行...」(Ctrl+F5)から編集中のバッチファイルを実行し、標準出力を画面表示できました。

メニュー選択時、実行コマンドを入力するダイアログが表示されます。何でも入力できるのですが、バッチファイルを作るという観点からは、次のコマンドが便利だと思いました。

現在行の実行
'$C'

ここで"$C"は、現在行の文字列を表しています。

編集中ファイルの実行
'$F'

ここで"$F"は、編集中ファイルのフルパスを表しています。ファイルは".bat"の拡張子で保存しておく必要があります。ファイルの置き場所には、日本語や空白が入ったフォルダでも正常に実行されます。
最後に保存した内容が実行されます。

マクロ登録&ショートカットキー割り当て

上記の各コマンド実行を、マクロとして登録し、ショートカットキーで呼び出せるように設定できるようです。
コマンド実行の内容を、キーマクロの保存機能または手入力でマクロファイルを作成し、作成したファイルを外部マクロとして登録し、ショートカットを割り当てられるようです。
そうすれば、ショートカットキーの押下だけで、編集中のコマンドや行が実行できて便利そうですね。

現在行実行マクロ(batfile_line.mac)

S_ExecCommand('$C', 1);	// 外部コマンド実行

編集中ファイル実行マクロ(batfile_file.mac)

S_FileSave();	// 上書き保存
S_ExecCommand('$F', 1);	// 外部コマンド実行

入出力ファイル表示機能

バッチファイルで使用する入出力ファイルは、バッチファイル内にファイル名が記述されると思います。記述されているファイル名にカーソルを当て、メニューから「検索>タグジャンプ」(F12)とすると、そのファイルを新規エディタに表示することが出来ました。
さらに、新規エディタからバッチファイル編集ウインドウに戻りたい場合は、メニューから「検索>タグジャンプバック」(Shift+F12)で戻れました。

動作環境

サクラエディタ:Version 1.5.15.3