今天我想做做内置效果笔记, 于是想先遍历所有效果, 并创建对应的.md文件
用到的脚本方法与关键点
- effects
- fsName (文件的特定平台的完整路径名)
源码
var effects = app.effects;
var effects_store = {};
// 引入File类
var File = File || $.global.File;
// 获取当前脚本文件所在的文件夹路径
var scriptFile = File($.fileName);
var scriptFolder = scriptFile.parent.fsName;
// 遍历所有效果
for (var i = 0; i < effects.length; i++) {
var effect = effects[i];
var cat = effect.category;
// 将效果添加到字典中
if (!effects_store.hasOwnProperty(cat)) {
effects_store[cat] = [];
}
effects_store[cat].push(effect.displayName);
}
// 遍历储存的效果字典
for (var category in effects_store) {
if (effects_store.hasOwnProperty(category)) {
var effs = effects_store[category];
// 有的效果没有分类, 所以分类名为空,
// 如果你也想获取这些效果, 请在else里处理
if (category) {
// 创建文件夹,文件夹名字为 category
// 保存在脚本目录下的cache目录里
var folderPath = scriptFolder + "/cache/" + category;
var folder = new Folder(folderPath);
if (!folder.exists) {
folder.create();
}
// 遍历effs,并创建文件
for (var i = 0; i < effs.length; i++) {
var fileName = effs[i] + ".md"; // 文件名为效果名称
var filePath = folderPath + "/" + fileName;
// 打印下文件路径吧
$.writeln(filePath);
var file = new File(filePath);
if (!file.exists) {
file.open("w");
file.close();
}
}
}
}
}