秀丸エディタマクロで外部プログラム(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()
を使う)。