переделать скрипт для игнорирования расширений файлов - PullRequest
0 голосов
/ 24 марта 2020

Это не моя работа, но я пытаюсь ее изменить. Сценарий автоматизирует процесс копирования «контуров» (векторных масок, используемых в 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);
    }
}
}
...