[ 新規に投稿する ]

run 系の文についてNo.09565
Iranoan さん 17/09/27 21:38 [ コメントを投稿する ]
  run 系の文で、肝心のプログラム、及び引数部分があまり長いと、文字列が途中で切ら
れて実行に失敗します
実際に上手くいかなかったのは、1100 文字程度です
そこで要望ですが、
・扱える文字数を増やして欲しい
 コマンド・プロンプトで許される範囲で
・扱えない文字数の時は、マクロ・エラーにして欲しい
[ ]
RE:09565 run 系の文についてNo.09567
秀丸担当 さん 17/09/28 11:03 [ コメントを投稿する ]
 
確かに引数が長いと途中で切れてしまことがありました。
コマンドラインの上限として8192文字はできたほうがいいようです。
秀丸エディタとして秀丸エディタ自身のプロセスを幾つかまたぐ関係もあって、
上限を増やすことはよく考える必要がありそうです。
少なくとも切れてしまうようなケースではエラーとなるように修正させていただ
きます。
[ ]
RE:09567 run 系の文についてNo.09569
Iranoan さん 17/09/28 20:54 [ コメントを投稿する ]
  秀丸担当さん今日は、Iranoan です
> 秀丸エディタとして秀丸エディタ自身のプロセスを幾つかまたぐ関係もあって、
> 上限を増やすことはよく考える必要がありそうです。
> 少なくとも切れてしまうようなケースではエラーとなるように修正させていただ
> きます。
よろしくお願いします
あと失敗したときについてですが、単純にエラーにするより、run 系文に渡す文字列が
変数の場合、マクロを実行してみないと制限に引っかかっているか分からないので、
result で
・文字列が切れた場合
・無事実行できたときも、実行先プログラムの返り値
と知ることができればより便利かも知れませんね
[ ]
RE:09569 run 系の文についてNo.09570
秀丸担当 さん 17/09/29 10:54 [ コメントを投稿する ]
 
エラーの理由を知ることができたらいいですが、result等で知ることにすると、
result等をチェックしないマクロにとってはそのまま続行してしまうことになる
ので、エラーは必要かと思います。
エラーメッセージの内容に理由を表示するようにしようかと思います。

プロセスの終了コードはgetresultexで知る方法があります。
例:
#a=getresultex(9);
終了コードは、run文でリダイレクトしない場合や、runexで非同期で実行する場
合はうまく取得できないです。
run文でリダイレクトする場合、runsync文、runexで同期する場合に取得ができ
ます。
[ ]
RE:09570 run 系の文についてNo.09571
Iranoan さん 17/09/29 16:04 [ コメントを投稿する ]
  秀丸担当さん今日は、Iranoan です
> エラーメッセージの内容に理由を表示するようにしようかと思います。
>
> プロセスの終了コードはgetresultexで知る方法があります。
こちらで知ることが出来るんですね
失礼しました
[ ]

[ 新規に投稿する ]