外部プログラムを実行してその出力を取得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オブジェクト、標準で備わっているhidema
ru.runProcessで、どれも標準出力を得ることができたりします。


[ ]
RE:10568 外部プログラムを実行してその出No.10569
フリーバード さん 23/01/10 19:29
 
確認しました。

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

[ ]