[ 新規に投稿する ]

外部プログラムを実行してその出力を取得No.10567
フリーバード さん 23/01/10 12:25 [ コメントを投稿する ]
  外部プログラムを実行して、その出力を取得したいのですが
1行目で

オブジェクトを指定してください

とエラーが出でます。
どう直せばよいでしょうか?
パスの先頭に js: は入ってます。

var exec = require('child_process').exec;
var COMMAND = 'echo Hello World';
exec(COMMAND, function(error, stdout, stderr) {
  if (error !== null) {
    return;
  }
echo(stdout);
});
[ ]
RE:10567 外部プログラムを実行してその出力を取得No.10568
秀丸担当 さん 23/01/10 17:20 [ コメントを投稿する ]
  秀丸ファイラーClassicのJavaScriptは、いわゆるJScriptという種類のものになっています。
Windows標準で使えるもので、Windows Script Hostのものと同じです。
試されたのは、おそらくnode.jsをインストールする必要があるもののような気がします。

使えるオブジェクトは、秀丸ファイラーClassicに備わっているものか、COMオブジェクトで作成できるものになります。
秀丸ファイラーClassicに備わっているものでプログラム実行は無いので、COMオブジェクトということになります。

例えば以下のようにするとできました。
exec = new ActiveXObject("WScript.Shell").exec("cmd /c dir");
all=exec.StdOut.ReadAll();
lines=all.split("\r\n");
message(lines[0]);
message(lines[1]);
message(lines[2]);

あるいは、ファイルを読み込むloadTextFileメソッドは標準で備わっているので、ファイルに出力するようにプログラムを実行してから、loadTextFileで読み込むという方法も考えられると思います。

ちなみに秀丸エディタのマクロはたくさんあって、run文、runex文、createobjectでCOMオブジェクト、JavaScript対応でもCOMオブジェクト、標準で備わっているhidemaru.runProcessで、どれも標準出力を得ることができたりします。

[ ]
RE:10568 外部プログラムを実行してその出力を取得No.10569
フリーバード さん 23/01/10 19:29 [ コメントを投稿する ]
  確認しました。

教えていただきありがとうございました。
[ ]

[ 新規に投稿する ]