0

myscript.js という AppleScript スクリプトを作成して oascript に渡すと、run 関数が 1 回実行され、"hello world" が標準データ出力に書き込まれます。

function run(args) {

  for (var i=0;i<10;i++) {
     // out("number " + i); // execution error: Error on line 18: ReferenceError: Can't find variable: out (-2700)
  }

  return "hello world"; // written to standard data out
}

しかし、for ループなどで標準データに複数回書き込みたい場合は、どうすればよいでしょうか。

次のようにすると、標準エラー出力に複数回書き込み、外部アプリケーションで複数のイベントをディスパッチします。

  for (var i=0;i<10;i++) {
     console.log("number " + i);
  }

唯一の問題は、標準のデータ イベントではなく、エラー イベントを作成していることです。

Script Editor では、標準データ出力が結果ウィンドウに送信されます。結果ウィンドウに複数回印刷したい。 Mac OSX スクリプト エディタから

更新:
できない可能性があるようです。ここでこの引用を見つけました:

Q: 私のスクリプトは長時間にわたって出力を生成します。入ってくる結果をどのように読み取るのですか?

A: 繰り返しますが、簡単に言えば、そうではありません。do shell script は、コマンドが完了するまで戻りません。Unix 用語では、パイプの作成には使用できません。ただし、できることは、コマンドをバックグラウンドに置き (次の質問を参照)、その出力をファイルに送信し、ファイルがいっぱいになったときにファイルを読み取ることです。

また、補足として、AppleScript の代わりに JavaScript を使用したい場合は、 osascriptの代わりにcocoascriptを使用する必要がありますか?

4

2 に答える 2