Это не моя работа, но я пытаюсь ее изменить. Сценарий автоматизирует процесс копирования «контуров» (векторных масок, используемых в Photoshop) из исходного файла в уже существующий конечный файл. Это делается путем получения имен файлов в исходной папке A и сопоставления с файлом в папке назначения B.
Я хочу переработать этот скрипт, чтобы он не зависал на типах файлов (расширениях файлов) .... продление агности c.
app.bringToFront();
var jpgFolder = Folder.selectDialog("Select Source Path folder...");
var psdFolder = Folder.selectDialog("Select Destination Path folder...");
var jpgFileList;
processFolder();
function processFolder() {
jpgFileList = jpgFolder.getFiles();
for ( var n = 0; n < jpgFileList.length; n++ ) {
var theFile = jpgFileList[n].name.split(".");
var theExt = theFile[1];
if(theExt == "tif"){
open( jpgFileList[n] );
var jpgName = jpgFileList[n].name.split(".");
var psdName = psdFolder + "/" + jpgName[0] + ".psb";
var psdFile = new File( psdName );
if(!psdFile.exists){
alert("No matching PSD file!");
return;
//KEPT OPEN SO YOU CAN SEE WHICH FILE FAILED
}
open(psdFile);
app.activeDocument = app.documents[0];
var workPath = app.activeDocument.pathItems;
for(var p=0; p<workPath.length; p++){
var pathName = workPath[p].name;
var idslct = charIDToTypeID( "slct" );
var desc218 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref41 = new ActionReference();
var idPath = charIDToTypeID( "Path" );
ref41.putName( idPath, pathName );
desc218.putReference( idnull, ref41 );
executeAction( idslct, desc218, DialogModes.NO );
var idcopy = charIDToTypeID( "copy" );
executeAction( idcopy, undefined, DialogModes.NO );
app.activeDocument = app.documents[1];
if(workPath.length>1){
var idMk = charIDToTypeID( "Mk " );
var desc44 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref13 = new ActionReference();
var idPath = charIDToTypeID( "Path" );
ref13.putClass( idPath );
desc44.putReference( idnull, ref13 );
var idNm = charIDToTypeID( "Nm " );
desc44.putString( idNm, pathName );
executeAction( idMk, desc44, DialogModes.NO );
}
var idpast = charIDToTypeID( "past" );
executeAction( idpast, undefined, DialogModes.NO );
app.activeDocument = app.documents[0];
}
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
app.activeDocument.save();
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
}
}