Запустите последний скрипт Photoshop (снова) - PullRequest
0 голосов
/ 22 апреля 2020

Это кажется тривиальной проблемой, но я не уверен, что Photoshop поддерживает такой тип функциональности:

Возможно ли реализовать использование функции последнего скрипта?

  • То есть без необходимость добавления функции в каждый скрипт, который записывает свое имя файла в текстовый файл.

1 Ответ

1 голос
/ 22 апреля 2020

Ну ... Это немного клунки, но я полагаю, что вы можете прочитать в сценарии в обратном порядке и найти первое упоминание файла сценария:

// Switch off any dialog boxes
displayDialogs = DialogModes.NO; // OFF

var scripts_folder = "D:\\PS_scripts";


var js = "C:\\Users\\GhoulFool\\Desktop\\ScriptingListenerJS.log";
var jsLog = read_file(js);
var lastScript = process_file(jsLog);

// use function to call scripts
callScript(lastScript)

// Set Display Dialogs back to normal
displayDialogs = DialogModes.ALL; // NORMAL


function callScript (ascript)
{
  eval('//@include "' + ascript + '";\r');
}

function process_file(afile)
{
  var needle = ".jsx";
  var msg = "";

  // Let's do this backwards
  for (var i = afile.length-1; i>=0; i--)
  {
    var str = afile[i];

    if(str.indexOf(needle) > 0)
    {
      var regEx = str.replace(/(.+new\sFile\(\s")(.+\.jsx)(.+)/gim, "$2");

      if (regEx != null)
      {
        return regEx;
      }
    }
  }
}

function read_file(inFile)
{

    var theFile = new File(inFile);

    //read in file 
    var lines = new Array();
    var l = 0;
    var txtFile = new File(theFile);
    txtFile.open('r');
    var str = "";

    while(!txtFile.eof)
    {
      var line = txtFile.readln();
      if (line != null && line.length >0)
        {
          lines[l++] = line;
        }
    }

    txtFile.close();

  return lines;
}
...