Я хочу #include
все сценарии из целевой папки динамически в запущенном сценарии. Не нужно писать каждый скрипт имя / путь каждый раз. Это значит: => вы удаляете любой скрипт в целевую папку => когда вы запускаете скрипт, скрипты / скрипт из цели автоматически включаются в запущенный скрипт.
РЕДАКТИРОВАТЬ: Вы также можете вызывать любые функции или переменные из введенного фрагмента кода в любой области. Я написал этот сценарий до сих пор:
var runnedScriptPath = $.fileName;
var runnedScriptFolderPath = getScriptFolder(runnedScriptPath);
var targetScriptsFolderPath = runnedScriptFolderPath + "/foo";
var targetScriptsFolder = Folder(targetScriptsFolderPath);
includeScriptsFromTargetFolder(targetScriptsFolder);
function includeScriptsFromTargetFolder(targetFolder) {
var targetFolderFiles = targetFolder.getFiles();
var scriptFilesToInclude = new Array;
for (var i = 0; i < targetFolderFiles.length; i++) {
if (targetFolderFiles[i] instanceof File) {
if (targetFolderFiles[i].toString().match(/.jsx$/)) { // .jsx is extension from Adobe's scripts
scriptFilesToInclude.push(decodeURIComponent(targetFolderFiles[i]) ); // decodeURIComponent method is used becouse path is URl
}
}
}
for (var i = 0; i < scriptFilesToInclude.length; i++) {
#include scriptFilesToInclude[i]; // <===== this line gives error!
}
}
function getScriptFolder(scriptPath) {
return scriptPath.match(/^(.*[\\\/])/g); // match(/^(.*[\\\/])/g) "Select everything before the last forward slash" //
}
Но потом я получил эту ошибку: Я не смог найти разумного решения в руководстве по инструментам javascript cs6.pdf в главе «Директивы препроцессора», стр. 235. Я рассуждаю так: scriptFilesToInclude[i]
результат - строка, поэтому его следует рассматривать как "some path/runned code folder/foo/bar.jsx"
. И тогда путь строки загружается в скрипт. Но вместо этого, я полагаю, он попытался найти файл в папке запущенного скрипта с именем: scriptFilesToInclude[i]
.
==================== ========================================= *======
Примечания: Я пытался использовать eval : eval("#include scriptFiles[i]");
А также JSON .pars () : JSON.parse("#include scriptFiles[i]");
Чтобы обойти ошибку, но она тоже не сработала. Заранее спасибо за любую помощь.