我希望Javascript根据Photoshop中打开文件的文件名运行3个单独的操作

时间:2016-03-21 23:04:23

标签: javascript photoshop extendscript photoshop-script

所以我目前正在尝试在Javascript for Photoshop中创建一个脚本,该脚本将首先提示用户指向一个文件夹。从那里它将打开该文件夹中的所有文件,然后根据文件的名称,它将对这些文件运行单独的操作,关于它们属于哪个名称。

现在我能够打开所有文件并在所有文件上执行一个操作。但是我很难让它为不同的文件运行不同的操作。

以下是每个文件夹的内容。

(我想让它选择名为1-18的文件或名称中少于3个字符的文件。 1.psd
2.psd ...

... 18.psd

(对于这些我会选择名称中包含“ - ”的文件)

GHHJKK-1.psd GHHJKK-2.psd ..... GHHJKK-5.psd

(对于这些我会选择包含字符串“zoom”的文件)

zoom_side.psd

zoom_sole.psd

这是我到目前为止所拥有的

#target photoshop


var inputFolder = Folder.selectDialog("Select a folder of documents to process");

function open360() {
		//app.open(File(openDialog()));
		
		var filesOpened = 0;
        var fileList = inputFolder.getFiles();
        for ( var i = 0; i < fileList.length; i++ ) {
        	open( fileList[i] );
        	filesOpened++;
		
	}	
	 
}
open360();


var doc = app.activeDocument;


 function shoeSFW() {
		
/*	if (doc.filename.length < 3 ) {
		app.doAction("Zoom Side and Sole 360 SFW", "New SFW Actions");
		
	}
*/	
	for(i = app.documents.length; i > 0; i--){
	
	if(app.documents.length != 0){ 

			doc = app.doAction("360 Shoes SFW", "New SFW Actions");
		}	
	}

}

shoeSFW();

我非常感谢你提供任何帮助,谢谢你。

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

for ( var i = 0; i < fileList.length; i++ ) {
        open(fileList[i]);
        filesOpened++;
        if(fileList[i].name.indexOf("zoom") != -1){ //contains "zoom"
            app.doAction("foo", "bar"); //first set of actions
        } else if(fileList[i].name.indexOf("-") != -1){ //contains "-"
            //second set of actions
        } else { //everything else
            //third set of actions
        }
}

或者,如果对“缩放”和“ - ”进行微不足道的检查对您来说还不够,可以使用正则表达式。