“控制台.log”使用 Photoshop 脚本 - ExtendedScript Toolkit

发布于 2024-12-21 11:52:36 字数 183 浏览 2 评论 0原文

我第一次编写一些 Photoshop 脚本,如果有一个类似 console.log 的函数来在 ExtendScript 工具包应用

有等价的功能吗?

I'm doing a bit of Photoshop scripting for the first time and it sure would be great to have a console.log-like function to output array and object values in the Javascript console of the ExtendScript Toolkit App.

Is there an equivalent function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

关于从前 2024-12-28 11:52:36

$.writeln() 就是您要寻找的。请参阅 JavaScript 工具指南 (PDF) 了解详细信息。

$.writeln() is what you're looking for. See the JavaScript Tools Guide (PDF) for details.

漆黑的白昼 2024-12-28 11:52:36

我正在使用 ExtendScript Toolkit 版本 4.0,并且使用 _print('foo') 似乎可以解决问题。

I'm using ExtendScript Toolkit version 4.0, and using _print('foo') seems to do the trick.

甜味超标? 2024-12-28 11:52:36

相反,

我知道这是旧的,但我最近需要记录 InDesign 脚本的某些值,我想分享我的“解决方案”。

我的第一个问题是我什至不知道 $.writeln() 生成的输出去了哪里。所以我求助于一个简单的函数来记录到文档目录中的一个文件。也许它会对某人有用。我猜这可能也适用于 Photoshop 或其他 ExtendScript 环境。

我了解到 ExtendScript 不支持 JSON 方法,因此我使用了 polyfill。只需将文件(在我的例子中为 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 变量快速启用或禁用输出。

Log to a file instead

I know this is old, but I was recently in need of logging for some values of an InDesign script and I'd like to share my "solution".

My first problem was that I didn't even figure out where the output produced by $.writeln() goes. So I resorted to a crude function that logs to a file in the document directory. Maybe it'll be of use to somebody. I'm guessing this may work for Photoshop or other ExtendScript environments as well.

I learned that ExtendScript does not support JSON methods, so I used a polyfill. Simply put the file (in my case json2.js) in the same directory as your .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();
}

Usage

var debug = true;

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

Use the debug variable to quickly enable or disable output.

2024-12-28 11:52:36
write("any message");

这就是 XTools for Photoshop 中的功能。我发现 Photoshop 调试器在 Mac OSX 上的 CS6 中总是崩溃。

您可以在这里找到有关 XTools 的更多信息: http://ps-scripts.sourceforge.net/xtools.html

太棒了!

write("any message");

Is what works in XTools for Photoshop. I find that the Photoshop debugger crashes all the time in CS6 on Mac OSX.

You can find more about XTools here: http://ps-scripts.sourceforge.net/xtools.html.

It's fabulous!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文