javascript 自动机输出

javascript output in automator

我正在尝试在 Automator 中创建一个服务来写出格式化的日期字符串。我写了一个 JavaScript 来完成这项工作,但我无法弄清楚如何从脚本中实际获取输出字符串。我尝试了 log、console.log、this.console.log、write 以及我在那里找到的其他一些命令。我根本没有 JavaScript 经验;我花了几个小时把它零碎地放在一起。这是我的代码:

ObjC.import('Cocoa');
rightNow = $.NSDate.date;
dtFormatter = $.NSDateFormatter.alloc.init;
dtFormatter.dateStyle = $.NSDateFormatterFullStyle;
dtFormatter.timeStyle = $.NSDateFormatterMediumStyle;

formattedDate = dtFormatter.stringFromDate(rightNow);

我的印象是最后一行代码会提供输出,但在 运行 JavaScript 中似乎并非如此 Automator 中的动作。当此代码在脚本编辑器中为 运行 时,控制台会按预期显示格式化日期。

非常感谢您的指教。

事实证明,变量 formattedDate 需要 "unwrapped" 从它的 Objective-C 包装:

Answered at MacScripter

因此最终代码为:

ObjC.import('Cocoa');
rightNow = $.NSDate.date;
dtFormatter = $.NSDateFormatter.alloc.init;
dtFormatter.dateStyle = $.NSDateFormatterFullStyle;
dtFormatter.timeStyle = $.NSDateFormatterMediumStyle;

formattedDate = dtFormatter.stringFromDate(rightNow);

 ObjC.unwrap(formattedDate)