秀丸エディタマクロで外部プログラム(run文)の戻り値を取得、はできないので INI に吐かせて取得してみた

run文の戻り値を取得するのは不可能なので、代替案で頑張るしかない。

getresultex(9) は?

ヘルプによると V8.00 以降は getresultex(9) が使える。run 文で実行したコマンドラインの戻り値が取れるらしいのが、試しても取れなかった。 259(なんか上手く動作してない) しか返ってこなかった。

result 変数は?

これは成功なら1、失敗なら0を返す秀丸マクロ用定数であって、コマンドラインの戻り値とは全くの無関係。

秀丸エディタ関連ソフト会議室を覗く

秀丸エディタ関連ソフト会議室 - スレッド25444, 08/09/20 がヒット。試してないけど、

  • 外部プログラム側で 戻り値を標準出力する
  • run文で >con を行い、秀丸マクロ上で標準出力をゲットできるようにする

こんなやり方になるっぽい?微妙。

(今回採用した方法) INI ファイルから取る

今回は以下方法で取得することに。

  • 外部プログラム側で 結果(戻り値をわかりやすく解説した文字列)を INI ファイルに書く
  • 秀丸マクロ側で getinistr($inifilepath, "sectionname", "keyname"); を使って、その INI ファイルの中身を取る

しれっと戻り値じゃなくて解説文にしてるけど、戻り値を取るのも可能(getininum()を使う)。