バッチファイル、いまだ便利に利用しています。
今日はこのバッチファイルの編集に関するちょっとしたTIPSのご報告。
バッチファイル以外のファイル拡張子でも同じ動作をします。
バッチファイルを編集
以前にSSIDを操作する
バッチファイルでSSID一括追加(要事前準備) - treedown’s Report
とか
無線LANのSSID(プロファイル)を書き出すバッチ - treedown’s Report
とか、バッチファイルで操作を簡略化してました。
これを編集しようと思ったときの操作、ファイルを右クリック(もしくはファイルにフォーカスがある状態でShiftキー+F10キー)でメニューを開き「編集」を選択するのが便利です。
通常ファイルを使うときはダブルクリックで開きます。
このとき開くアプリケーションは、拡張子に関連付けされたアプリケーションが開きます。
至極当然な動き。
で、バッチファイルやスクリプトファイルなどは、"ダブルクリックで処理が実行"されるのでファイルの編集には、"右クリックやShiftキー+F10キーで開いたメニューから「編集」を選択する"という操作を実行します。
前からやや不満だったのが、この編集がメモ帳(Notepad.exe)に固定されていることです。悪くはないのですが、テキストエディタを使い分けている環境ではせっかくなんで使い慣れたテキストエディタで編集作業を開始するようにしたい、と思いました。
せっかく秀丸エディタ購入したことだし、積極的に使っていきたい、と思ったのも動機の一つです。
設定を変更する
※レジストリの操作が必要なので、ご注意(自己責任の下)を。
レジストリエディタから
\HKEY_CLASSES_ROOT\batfile\shell\edit\command
を開きます。
このキーを開くと右側に、アプリケーションメニューから「編集」を選択したときに実行されるアプリケーションの実行ファイルパスが記載されています。
こんな感じ。「%SystemRoot%\System32\NOTEPAD.EXE %1」と記載されています。
このキーを編集します。
割り当てたいTerapadや秀丸エディタは「C:\Program Files (x86)」に格納されていますので、利用する環境変数としては「%ProgramFiles(x86)%」を利用することになります。
コマンドプロンプトで
>echo %ProgramFiles(x86)%
と実行すると、「C:\Program Files (x86)」が表示されますので、環境変数は「%ProgramFiles(x86)%」を使えば良さそう。
と、いうことで、こういう指定にしました。
バッチファイルを「編集」で開いた場合には、
「%ProgramFiles(x86)%\Hidemaru\Hidemaru.exe %1」
で起動するように設定します。
ちなみに実行ファイルの後ろに付く「%1」は、実行コマンドに対する引数になります。「%1」は第一引数の意味で、ここでは編集で指定される(編集対象の)ファイル名を意味しています。notepad.exeだから%1を付けるという意味合いの文字ではないため、実行ファイルのパスとファイル名を変更したとしても、引き続き「%1」は付けておくようにします。
同様にTerapadを指定する別のPCでは、
こうしました。
この設定をレジストリに実行することで、望み通り「ダブルクリックではバッチファイル実行」「右クリックから編集すると、テキストエディタで編集」の二通りの動作が望み通りになりました。
実行と編集で違うアプリケーションを関連付けしたい場合には、単純にファイル拡張子に関連付けするアプリケーションを設定するだけでは思うような動作にならないことになります。
Windows標準でnotepad.exeが指定されている箇所は、テキストエディタを別途使っている環境だと、使い慣れたテキストエディタが使いたいものです。
「\HKEY_CLASSES_ROOT\batfile\shell\edit\command」のように、キーの配下の「edit」キーと「command」キーの関係性を覚えておくと、別の動作にも応用がききそうな気がしました。