2016-03-21 3 views
-1

Donc j'essaye actuellement de créer un script dans Javascript pour Photoshop qui invitera d'abord l'utilisateur à pointer vers un dossier. De là, il ouvrira tous les fichiers dans ce dossier, puis en fonction des noms des fichiers, il exécutera des actions distinctes sur ces fichiers par rapport à quel nom ils tombent.Je veux que Javascript exécute 3 actions séparées basées sur les noms de fichiers ouverts dans Photoshop

Actuellement, je peux ouvrir tous les fichiers et exécuter une action sur chacun d'entre eux. Cependant, j'ai du mal à le faire exécuter différentes actions pour différents fichiers.

Voici à quoi ressemblerait le contenu de chaque dossier.

(je veux avoir sélectionner les fichiers nommés ou des fichiers 1-18 ont moins de 3 caractères dans leur nom. 1.psd
2.psd ...

... 18 .psd

(pour cela, je le voudraient sélectionner des fichiers qui contiennent "-" au nom)

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

(pour cela, je l'aurais sélectionner des fichiers qui contiennent la chaîne "zoom")

zoom_side.psd

zoom_sole.psd

Voici ce que j'ai jusqu'à présent

#target photoshop 
 

 

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

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

 

 
var doc = app.activeDocument; 
 

 

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

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

 
} 
 

 
shoeSFW();

J'apprécierais vraiment toute aide à ce sujet, merci d'avance.

Répondre

1

Quelque chose comme cela devrait fonctionner:

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 
     } 
} 

Ou, Si le contrôle trivial pour "zoom" et "-" ne sera pas suffisant pour vous être, vous pouvez utiliser regexp.

+0

je vous remercie de l'aide, grandement appréciée. Je vais essayer cela, j'ai été capable de trouver une solution différente en utilisant le rapport d'aspect de l'image, mais c'est bien d'avoir cela dans l'arsenal. –