1.准备工作
ps下载:我这里下载的ps是2024版本的,下面是百度网盘分享链接
链接:下载地址
提取码:nkxs
vscode下载:直接在官网下载最新版本
下载地址:Visual Studio Code - Code Editing. Redefined
2.vscode创建项目
新建项目script_back
2.1插件安装
在vscode插件商城中搜索ExtendScript,需要安装两个插件ExtendScript和ExtendScript Debugger。
第一个插件是可以支持extendscript语法,第二个插件则是为我们提供断点调试功能。
2.2项目配置
插件安装好后,要配置下extendscript debugger插件所需要的配置。
在Run and Debug 选项卡中(快捷键Ctrl+Shift+D)点击create a launch.json file 然后选择 ExtendScript。
我们需要改造下launch.json配置,下面是改造后的配置
{
"version": "0.2.0",
"configurations": [
{
"type": "extendscript-debug",
"request": "launch",
"name": "Launch ExtendScript",
"script": "${workspaceFolder}/back.jsx",
}
]
}
request:我们采用launch的方式启动并调试这个程序
然后我们多加了一个script配置,这个配置的是程序启动执行的脚本文件路径,${workspaceFolder} 是当前项目路径,back.jsx是项目根路径下的脚本文件。script这个属性是插件2.0版本新加的属性,所以网上查的很多配置是不适用2.0版本的。
2.3代码提示和高亮显示
配置好后就可以编写脚本文件了,但是我们最好还要配置下代码提示和高亮来帮助我们开发。
1.先安装JavaScript (ES6) code snippets 插件,下载安装方法就不详细描述了。
2.安装完成后在.vscode文件夹下新建settings.json文件,配置如下
{
"files.associations": {
"*.jsx": "javascript"
},
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
"javascript.suggest.completeFunctionCalls": true,
"editor.quickSuggestions": {
"strings": true
},
"editor.parameterHints.enabled": true
}
3.在项目根路径下新建 typings文件夹,在新建extendscript.d.ts文件,这个配置是可以支持extendscript的一些语法
declare const app: {
documents: {
add(width: number, height: number, resolution: number, name: string): Document;
};
foregroundColor: {
rgb: {
red: number;
green: number;
blue: number;
};
};
};
declare class Document {
selection: {
select(region: [number, number][]): void;
fill(color: { rgb: { red: number; green: number; blue: number } }): void;
deselect(): void;
};
}
4.在项目根路径下新建tsconfig.json文件,配置如下,这个是配置了typings配置文件的路径
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true,
"baseUrl": ".",
"paths": {
"*": ["typings/*"]
}
},
"include": ["typings/**/*.d.ts"]
}
3.开始编写脚本文件
我写的脚本文件是用来备份ps当前正在使用的psd格式文件,代码如下
//文件备份
// 检查是否有打开的文档
if (app.documents.length > 0) {
// 获取当前文档
var doc = app.activeDocument;
// 获取文档名称
var docName = doc.name;
// 尝试获取文档格式
var docFormat = "";
try {
// 获取完整文件路径并提取扩展名
var fullPath = doc.fullName.fsName;
var fileExtensionIndex = fullPath.lastIndexOf(".");
if (fileExtensionIndex != -1) {
docFormat = fullPath.substring(fileExtensionIndex + 1).toLowerCase();
}
} catch (e) {
// 未保存的文档会抛出错误
docFormat = "";
}
if(docFormat.length > 0 && docFormat == "psd"){
// 获取当前日期
var currentDate = new Date();
// 获取当前年份
var currentYear = currentDate.getFullYear();
// 获取当前月份(0-11,所以需要加1)
var currentMonth = currentDate.getMonth() + 1;
// 指定文件夹路径
var folderPath = "E:/Adobe/PS/备份文件/"+currentYear + "-" + currentMonth +"/";
// 创建一个Folder对象
var folder = new Folder(folderPath);
// 检查文件夹是否存在
if (!folder.exists) {
// 文件夹不存在,创建文件夹
folder.create();
}
// 指定另存为的路径和文件名
var newPath = folderPath + docName;
var saveFile = new File(newPath);
if(saveFile.exists){
// 尝试删除文件
saveFile.remove()
}
// 保存选项
var saveOptions = new PhotoshopSaveOptions();
saveOptions.alphaChannels = true;
saveOptions.annotations = true;
saveOptions.embedColorProfile = true;
saveOptions.layers = true;
saveOptions.spotColors = true;
// 另存为
doc.saveAs(saveFile, saveOptions, true, Extension.LOWERCASE);
}
}
4.代码调试
在调试之前需要把ps开启调试模式,打开ps->选择编辑->首选项->增效工具 勾选启用开发人员模式。如图:
4.1 直接在ps中执行脚本文件
这种是最简单的执行方式,打开ps->选择文件->脚本->浏览 然后选择要执行的脚本文件就可以了。这样执行是不需要调试的,也只能手动执行脚本。
4.2 vscode+ps调试
在vscode中启动项目执行run and debug 启动应用选择ps,前提需要先启动ps才有这个选项。
运行成功后就可以查看运行结果了(在ps中打开一个psd文件),也可以打个断点进行调试。
5.定时执行脚本文件
因为ps没有定时执行脚本的功能,所以我们可以借助操作系统的定时任务功能实现。
先写一个执行文件run_photoshop_script.bat用来启动ps并运行脚本,代码如下
@echo off
REM 启动 Photoshop 并运行脚本
start "" "D:\soft\Adobe Photoshop 2024\Photoshop.exe" -r "E:\Adobe\PS\script_back\back.jsx"
然后在任务计划里面创建定时任务来执行这个bat文件