Hidemaru Q and A

第IV部〜テキスト編集を極める!!
 起動オプションを使ってみよう


●起動オプションを使ってみよう

 秀丸エディタに限らず、Windows のアプリケーションの多くで、「起動オプション」を使うことができます。これによって、そのアプリケーションをどんな状態で起動させるかや、起動してすぐに実行したい処理などを指示することができます。起動オプションをうまく使うと、単にアプリケーションを起動するだけとはひとあじ違う使い方ができるわけで、こんなイイものを使わない手はないでしょう。(^_^)

 秀丸エディタの場合は、例えば

/b秀丸を閲覧モードで起動します。
/j行番号,桁番号ファイルを開いてから,指定された行にカーソルを移動します。
/xマクロ名秀丸起動と同時にマクロを実行します。
/fe /fj などオープンするファイルの文字コードを指定します。

のような起動オプションを利用することができます。(詳しくは秀丸エディタヘルプの「秀丸起動時のオプション」に解説されていますので、そちらをご覧ください。)

 この起動オプションは、「コマンドライン」で利用することができます。コマンドラインというのは、起動したいアプリケーション名とその起動オプション・開きたいファイル名を『文字で』記述することで、そのアプリケーションを起動することができるモノを指します(←ちょっといい加減な説明(^^;))。
 例えば、スタート メニューの「ファイル名を指定して実行(R)...」がそれに当たります。また、Windows95 では「MS-DOS プロンプト」でも同様にして Windows アプリケーションを起動させることができたりします。

 実は、Windows95 の「ショートカット」や「アプリケーションとの関連付け」でもコマンドラインの仕組みを使っています。
 例えば、ショートカットの場合、ショートカットのプロパティの「リンク先」がコマンドラインになっています。
 ショートカットは、デスクトップ上に置いて使う以外にも、右クリックメニューの中の「送る」の機能を追加するために使うことができます。「送る」の送り先は、WINDOWS\SendTo フォルダの中に置かれたショートカットなので、そこにショートカットを追加すれば、「送る」に追加されることになります。

 ということは、ショートカットの「リンク先」のところに起動オプションを書き加えておいて、そこにファイルをドラッグ&ドロップすれば(または「送る」)、いつもと一味違う秀丸が立ち上がって便利便利、ということになる‥‥『はず』なのですが、そこはいろいろありまして(^^;)、設定のしかたに少々コツが必要です。その方法について、この章では少し詳しく書いてみたいと思います。

 なお、「ドラッグ&ドロップ」と「関連付け」とでは、ファイル名の渡されかた(とくに空白を含むファイル名の場合)などで違う点もあるので、以下別々に順をおって説明したいと思います。

■1.ショートカットへの「ドラッグ&ドロップ」の場合
■2.「アプリケーションとの関連付け」の場合

■1.ショートカットへの「ドラッグ&ドロップ」の場合

 ここでは例題として、デスクトップ上に「秀丸を閲覧モードで開く」ショートカットを作成して、そこにファイルをドラッグ&ドロップすると、そのファイルが閲覧モードで開くようにしてみましょう。‥‥と言いたいところなんですが、実はショートカットのリンク先に /b を追加しただけでは、期待した動作をしてくれません。

 試しに、秀丸のショートカットを作成して、そのプロパティの「リンク先」の最後に

...\Hidemaru.exe /b
というふうに /b を追加してみてください。

※ショートカットの簡単な作り方:
エクスプローラで秀丸をインストールしたフォルダを開いて、Hidemaru.exe を右ドラッグ(Hidemaru.exe の上でマウスの右ボタンを押して、ボタンを離さずにマウスを移動させる)してデスクトップ上でボタンから手を離します。メニューから「ショートカットの作成(S)」を選べば作れます。

 できたショートカットをダブルクリックすると、新規作成の秀丸が閲覧モードで起動します。何にもない画面を閲覧モードで開いてもちっとも嬉しくありませんが(^^;)、とりあえずちゃんと起動オプションは効いているようです。
 ところが、そのショートカットにテキストファイルをドラッグ&ドロップしても、開いた秀丸は通常の状態のままで、閲覧モードにはなりません。

 なんでこうなるかというと、秀丸が悪いわけではなく、Windows95 のショートカットでは必ずそうなってしまいます。つまり、ショートカットにドラッグ&ドロップすると、せっかく記述した起動オプションが無視されてしまうのです。(;_;)

 起動時オプションも有効なショートカットを作成したい場合、以下のようにしてバッチファイルを作って、そのバッチファイルのショートカットを作る、という方法があります。
#ただし、一般にバッチファイルの処理はあまり速くないので、秀丸の立ち上がりはワンテンポ遅くなります。

  1. 秀丸等のエディタを使ってバッチファイル(拡張子が BAT のファイル)を作ります。

     「バッチファイル」というのは、簡単に言うと、コマンドラインに入力するコマンドをテキストファイルに記述したものです。

     テキストの本文には、ショートカットのコマンドラインと同様にしてコマンドを記述します。例えば、閲覧モードでファイルを開きたい場合は

    REM -----秀丸を閲覧モードで開くバッチファイル-----
    Hidemaru.exe /b %1 %2 %3 %4 %5 %6 %7 %8 %9
    REM -----------------ここまで------------------

    と書きます。実際には Hidemaru.exe はフルパスで記述してください。

    # %1 の意味やバッチファイルの詳しい書き方については、後述の「★バッチファイルの書き方の詳細」を参照してください。
    このバッチファイルを、適当なフォルダを作って(例えば C:\BAT)そこに置いておきます。

  2. 1.で作ったバッチファイルに対するショートカットを作成します。

  3. 以下の(a)〜(d)のようにしてショートカットのプロパティをいじって使いやすくします。
    (a)ショートカットのプロパティを開き、「スクリーン」タブの「使い方」を「ウィンドウ表示」にしておきましょう。
    (b)ショートカットのプロパティで「プログラム」タブの「プログラム終了時にウィンドウを閉じる」にチェックを入れます。
    (c)また、「その他」タブの「バックグラウンド時の設定」−「つねに実行を中断」をオフ(チェックしない)にします。これがチェックされたままだと下記(d)を設定した時にバッチファイルが実行されません。
    (d)できたショートカットを動作チェックして、秀丸がちゃんと起動することを確認したら、ショートカットのプロパティの「プログラム」タブの「起動時の大きさ」を「最小化の状態」にします。
    これで、バッチファイルの実行時にもウィンドウを出さないでバッチファイルが実行できます。
    #タスクバーにはコマンドが表示されてしまいますが‥‥(^^;)

★バッチファイルの書き方の詳細

ドラッグ&ドロップの場合には、ファイル名は以下の形式で渡されます。

  1. ファイル名は、8.3形式の短縮ファイル名で渡される。(当然 "" でくくられていない状態)
  2. コマンドラインの1行にまとめて渡される。

これはドロップ先がショートカットであろうとバッチファイルであろうと実行ファイルそのものであろうと関係無く同じです。

これをふまえて、バッチファイルは上述のとおり(REM の行は必要ありません)

REM -----秀丸を閲覧モードで開くバッチファイル-----
Hidemaru.exe /b %1 %2 %3 %4 %5 %6 %7 %8 %9
REM -----------------ここまで------------------

と記述するのがよいです。実際には、Hidemaru.exe はインストール先のフォルダを含むフルパス名で記述します。
 この %1〜%9 のところに、ドロップされたファイル名が1つずつ入ることになります。(※)
 ちなみに %1 1つだけでは、複数ファイルをドロップしてもファイル名が1つしか渡されないので、秀丸は1つしか開かないということになります。

★半角空白を含むパス名/ファイル名の処理(バッチファイルの場合)

 やっかい者(^^;)の半角空白を含むパス名/ファイル名の処理についてですが、例えば Hidemaru.exe が半角空白を含むフォルダにインストールされている場合は、そのフルパス名を "" でくくります。例えば以下のようになります。

REM ----------秀丸を閲覧モードで開くバッチファイル-------------
"C:\Program Files\HIDEMARU\Hidemaru.exe" /b %1 %2 %3 ...
REM -----------------------ここまで-------------------------

ただし、%1〜%9 を "" で括ってはいけません。というのは、 "" でくくると、%1〜%9 にファイル名が入らなかった場合に、"" が残ってコマンドラインに渡されてしまうからです。例えば上記の例の %1〜%9 を全部 "" でくくって

REM -----秀丸を閲覧モードで開くバッチファイルの『悪い例』--------
Hidemaru.exe /b "%1" "%2" "%3" "%4" "%5" "%6" "%7" "%8" "%9"
REM -------------------------ここまで------------------------

としたバッチファイル(のショートカット)に test1.txt だけをドロップした場合には、

Hidemaru.exe /b "test1.txt" "" "" "" "" "" "" "" ""
という状態になって、"" の数だけ新規の秀丸が開いてしまいます。(^^;)
 というわけで、ドラッグ&ドロップ用のバッチファイルの場合は、どうせ渡るのは空白の無い短縮ファイル名なので、"" でくくらないのが良いです。

(※)同時に開くことのできるファイル数について
%1〜%9 を記述することで、最大9ファイルが開くはずですが、実は以下の2つの理由によってうまくいかない場合があります。

  1. 少なくとも、秀丸95 ver.2.15 では、コマンドラインに複数のファイルを指定した場合に、起動オプションが有効なのは実は最初のファイルだけです。後ろのファイルは起動オプション無しの状態で起動します。
    この仕様は近い将来変更されるかもしれません。

  2. どうもドラッグ&ドロップで渡せるファイル名の文字数の合計が 128文字くらい(?)以下でないといけない、という制限があるらしいです。
     文字数が多くなると、バッチファイルが実行されなかったり、さらに長いと「システムに装着してあるデバイスは動作していません。」などという意味不明のエラーを出してくれます。(^^;)
     このため実際には、ドロップしたファイルのファイル名の長さやフォルダの階層の深さに依存して、3つ〜7つ程度しか開けないようです。

バッチファイルを以下のようにすると、1.を現状の秀丸の仕様のまま回避することができます(ただし実行速度はかなり遅いです)。

REM --- 複数ファイルを閲覧モードで開くバッチファイル例 ------
:LOOP
HIDEMARU.EXE /b %1
SHIFT
IF "%1" == "" GOTO END
GOTO LOOP
:END
REM ---------------------- ここまで ----------------------

 ちなみに、これでも 2.は回避できないようです。ということはコマンドラインそのものの文字数制限に引っかかっているわけではないらしいです。そもそも上記のバッチファイルは、%1〜%9 の9ファイルしか開けないはずのところを10ファイル以上でも開けるようにしようとして作ったのですが、ファイル名の長さ合計の制限(2)があるとは思ってもいませんでした。(^^;)

そこで、バッチファイル使用時のように速度が遅くならないように、また上記の 1.と 2.の制限をクリアできるように、D&D Dummy という超小物アプリを作成しました。
JRくんのホームページ(http://jrkun.my.coocan.jp/)か、@niftyのFWINAL LIB 1にて入手可能です(2002年8月25日現在)。

■2.「アプリケーションとの関連付け」の場合

 例えば、エクスプローラで適当な TXT ファイルを右クリックしてみてください。そうすると「開く」「印刷」などのメニューが出ます。「アプリケーションとの関連付け」を設定変更することによって、このメニューに例えば「閲覧モードで開く」といったメニューを追加したりすることができます。

 アプリケーションとの関連付けは、エクスプローラの「表示」−「オプション...」の「ファイルタイプ」タブのところで設定変更ができます。
 そこで変更したいファイルタイプを選択して「編集...」を押すと、「ファイルタイプの編集」ダイアログが出ます。その「アクション」に書かれているコマンドが右クリックしたときのメニューとして表示されるというわけです。

 ここでは、「閲覧モードで開く」を追加してみましょう。「追加」ボタンを押します。開いたダイアログの「アクション」のところには、右クリックメニューで表示したいコマンド名を記述します。この場合は「閲覧モードで開く」とでもしておきます。
 その下の「アクションを実行するアプリケーション」のところに、コマンドラインを記述します。実際には、Hidemaru.exe の後ろに起動オプションを記述するだけです。例えば「閲覧モードで開く」を関連付けする場合には

Hidemaru.exe /b
で良いです。
#もちろん、アプリケーション名(Hidemaru.exe)はふつうフルパス名で記述します。
「参照...」ボタンを使うと楽です。

 これで、TXT ファイルの右クリックメニューに「閲覧モードで開く」が追加されました。
#ただし、この関連付けは Hmsetup.exe を実行するごとにやり直す必要があるのはちょっと面倒なところですが。(^^;)

★関連付けの場合のファイル名の扱い

関連付けの場合、ファイル名は以下のようにして渡されます。

  1. ファイル名はロングファイルネームで渡される。何もしなければ "" でくくられていない。
  2. コマンドラインには、ファイル名は1つずつ渡されて、ファイル名の数だけコマンドライン実行が繰り返される。

というわけで、まず %2 以降は記述してもじゃまなだけです。
 で %1 を書こうかということになりますが、Windows95 のエクスプローラの関連付けの場合は、最後に %1 を記述しても意味はありません(書いても自動的に削除されます)。
 ただし、"%1" を記述することは出来ます。この場合は、%1 がきちんとファイル名に置き換えられるので、ファイル名が "" でくくられてアプリケーション側に渡されることになります。

 空白を含むファイル名や、ファイル名を "" でくくる書き方に対応できるかどうかは、一般には、当該の各アプリケーションがコマンドラインをどう処理するかで決まります。
 秀丸の場合は、どの場合にも対応しているようです。したがって、"%1" をわざわざ追加記述する必要はありません。

 ちなみに、他のアプリケーションでは、"" でくくる書き方に対応していないものもあります。
 ただし、その中にも、空白を含むファイル名が使える(アプリケーション名の後ろの文字列をすべてファイル名とみなす仕様の)ものと、使えない(ファイル名が分断されてしまう)ものの2種類があります。この前者の例としては WINHLP32.EXE があります。
 さらに、半角空白を含む場合に必ず "" でくくらないといけないものもあります。このような場合は "%1" を追加記述することで半角空白を含むファイル名に対応できます。


目次に戻る