last updated:2021/10/09

Hidemaru Q and A

第III部〜秀丸マクロのいろはにほへと
 外部プログラムの実行について


外部プログラムの実行について

はじめに

秀丸エディタのマクロから他のプログラム(実行ファイル)を起動する方法は複数あり、使用する命令文によって、出来ること/出来ないことがあります。

現状(2021/10/09現在)では単純にプログラムを実行するだけなら run文 でもいいですが、複雑な事をする場合は、引数の指定が難しいですが runex文をお勧めします。

命令文による違い
命令文 同期実行 リダイレクト
run ×
runsync/runsync2 ×
runex

○:問題なし。
△:制限あり。標準入出力を使う場合は Shift_JIS に変換される。
▽:制限あり。標準入出力は、Shift_JIS、UTF-8、UTF-16LEに対応。
×:不可。


同期実行
プログラムが終了するまで待機する。(プログラムの戻り値を取得可能)
リダイレクト
ファイルの内容を標準入力へ送ったり、標準出力をファイルへ取り込む。標準入出力を使う場合は、制限あり。ファイルから入力する場合は、保存してあるエンコードになります。

run系命令文の共通事項

個別の命令文について

run

非同期でプログラムの実行します。(プログラムを実行しても、終了を待たないで次の命令に進みます) 非同期なので、プログラムの「終了ステータス」を受け取ることは出来ません。

引数に、"<con" 、">con" 、"<ファイル名"、">ファイル名" などを付けることにより、標準入出力のリダイレクトが可能です。

第II部〜知っていると便利な秀丸の機能 プログラム実行【2】プログラム実行の方法その1を参照してください。

runsync,runsync2

同期でプログラムの実行します。(プログラムを実行すると、終了するまで待機します) 同期なのでプログラムの「終了ステータス」を受け取ることが可能です。リダイレクトは使用できません。

runsyncは、秀丸エディタ本体を最小化状態にして待機します。

runsync2は、秀丸エディタ本体はそのままの状態で待機します。

runex

run文/runsync文の拡張版で、引数がとても多い(14個)ですが、細かく実行状態を指定できます。詳細は以下のリンク先を参照の事。

書式は以下になります。

runex 実行ファイル名, 同期フラグ, 標準入力フラグ, 標準入力ファイル名, 標準出力フラグ, 標準出力ファイル名, 標準エラー出力フラグ, 標準エラー出力ファイル名, 作業フォルダフラグ, 作業フォルダ名, 表示フラグ, 非描画フラグ, エンコード, 拡張フラグ;


目次に戻る