48

初めてPhotoshopのスクリプトを少し作成しましたが、 ExtendScriptToolkitアプリのJavascriptコンソールに配列とオブジェクトの値を出力するためのconsole.logのような関数があると便利です。

同等の機能はありますか?

4

4 に答える 4

69

$.writeln()あなたが探しているものです。詳細については、JavaScriptツールガイド(PDF)を参照してください。

于 2012-03-08T18:15:26.443 に答える
4

ExtendScript Toolkitバージョン4.0を使用_print('foo')していますが、使用するとうまくいくようです。

于 2015-04-07T19:00:54.083 に答える
1
write("any message");

XToolsforPhotoshopで機能するものです。Mac OSXのCS6では、Photoshopデバッガーが常にクラッシュすることがわかりました。

XToolsの詳細については、http://ps-scripts.sourceforge.net/xtools.htmlを参照してください

素晴らしいです!

于 2013-10-13T22:34:17.793 に答える
0

代わりにファイルにログインしてください

これは古いことは知っていますが、最近、InDesignスクリプトのいくつかの値をログに記録する必要があり、「解決策」を共有したいと思います。

私の最初の問題は、によって生成された出力がどこに行くのかさえ理解していなかったことでした$.writeln()。そこで、ドキュメントディレクトリ内のファイルにログを記録する大まかな関数に頼りました。多分それは誰かに役立つでしょう。これは、Photoshopやその他のExtendScript環境でも機能する可能性があると思います。

JSONExtendScriptがメソッドをサポートしていないことを知ったので、ポリフィルを使用しました。ファイル(私の場合json2.js)をと同じディレクトリに置くだけ.jsxです。

#include "json2.js"; // include polyfill file

function log (input) {
    if(!debug) return;
    if(!JSON || !JSON.stringify) return;

    var now = new Date();
    var output = JSON.stringify(input);

    $.writeln(now.toTimeString() + ": " + output);

    var logFile = File(app.activeDocument.filePath + "/log.txt");
    logFile.open("a");
    logFile.writeln(now.toTimeString() + ": " + output);
    logFile.close();
}

使用法

var debug = true;

log("abc 123");
log([1, 3, 4343, "ddddd", null, false]);

変数を使用して、debug出力をすばやく有効または無効にします。

于 2022-02-09T15:03:58.333 に答える