[AI CC-CC2022] Скрипт для открытия файлов по пути к папке

  • Автор темы Автор темы romyk
  • Дата начала Дата начала

romyk

Топикстартер
10 лет на форуме
Сообщения
1 395
Реакции
266
Уважаемые коллеги, скажите, а реально ли открыть кучу файлов по папке?
Может, я не совсем корректно выражаю свою мысль, но общая идея такая.)))
Есть текстовый файл с путями к разным папкам, из каждой папки открыть только файл *.ai.
 
Да :)
1697109696826.png
 
Код:
#target illustrator

// ПУТЬ К ФАЙЛУ С ПЕРЕЧНЕМ ПАПОК (замените путь на свой)
var filePath = "C:\\путь\\к\\файлу.txt";

// ОТКРЫТИЕ ФАЙЛА И ЧТЕНИЕ СОДЕРЖИМОГО
var file = new File(filePath);
file.open("r");
var folders = file.read().split("\n");
file.close();

// ПЕРЕБОР ПАПОК И ОТКРЫТИЕ ФАЙЛОВ
for (var i = 0; i < folders.length; i++) {
  var folderPath = folders[i];
  var folder = new Folder(folderPath);
  var files = folder.getFiles("*.ai");

  for (var j = 0; j < files.length; j++) {
    var fileToOpen = files[j];
    app.open(fileToOpen);
  }
}

если это работает - то офигею.
Это как раз тот случай, когда чатжпт с высокой вероятностью напишет рабочий код :)
 
Последнее редактирование:
  • Спасибо
Реакции: romyk и densen
Это как раз тот случай, когда чатжпт с высокой вероятностью напишет рабочий код :)
Работает, зараза такая! =)

Я тут для InDesign написал, но в Иллюстраторе при замене расширения "indd" на "ai" почему-то не работает, хотя должно.
JavaScript:
//var txt = File("/d/path/open.txt");
var txt = File(File.openDialog("Open *.txt file","Text files: *.txt"))
txt.open("r");
var str = txt.read();
var arr = str.split("\n");
for (i = 0; i < arr.length; i++)
    {
    var path = arr[i];
    var myFolder = Folder(path);
    var myFileList = myFolder.getFiles();
    for (var j = 0; j < myFileList.length; j++)
        {
        var myFile = myFileList[j];
        if (myFile instanceof File && myFile.name.match(/\.indd$/i))
            {
            app.open(myFile);
            }
        }
    }
 
Последнее редактирование:
Странно, в Illustrator 27.9 скрипт не выполняет никаких действий и не выдает никаих ошибок.
Печалька(
 
Мир не без добрых людей. Вот полностью рабочий скрипт.

Код:
// ПУТЬ К ФАЙЛУ С ПЕРЕЧНЕМ ПАПОК (замените путь на свой)
var filePath = "E:\\173654.txt";

// ОТКРЫТИЕ ФАЙЛА И ЧТЕНИЕ СОДЕРЖИМОГО
var s =new File(filePath);
if (!s.exists) alert(s+" not exist");
s.open("r");
var folders = s.read();
var folders =folders.split("\n");
s.close();

// ПЕРЕБОР ПАПОК И ОТКРЫТИЕ ФАЙЛОВ
for (var i = 0; i < folders.length; i++) {
var folderPath = folders[i];
var folder = new Folder(folderPath);
if (!folder.exists) alert(folder+" not exist");
var files = folder.getFiles("*.ai");

for (var j = 0; j < files.length; j++) {
var fileToOpen = files[j];
app.open(fileToOpen);
}
}
 
  • Спасибо
Реакции: Slx1
Вот полностью рабочий скрипт
Если не ошибаюсь, то скрипт и был полностью рабочий :) Вроде как добавили только проверку существует ли папка/файлы в ней или нет :)

Не по теме:
И как-то странно добавили... добрые люди - тоже нейросетью пользовались ? :)
 
Если не ошибаюсь, то скрипт и был полностью рабочий :) Вроде как добавили только проверку существует ли папка/файлы в ней или нет :)

Не по теме:
И как-то странно добавили... добрые люди - тоже нейросетью пользовались ? :)
Предыдущая версия отказывалась работать, эта работает 'opa!)'
 
Да просто странным показалось :) Нет папки-вывести сообщение, но наличие файлов в этой папке все равно проверить... а вдруг? :)
Задача стояла понять, почему рабочий код не работает. Самая первая здравая мысль - не работает он изза неправильно вбитых путей. Так и вышло. А наличие файлов в каталоге и так видно.
 
Собственно о чем и речь :) Видно что проверка путей там для теста... Но ТС при этом почему-то утверждает, что предыдущий скрипт не работает, а этот пашет:) 'hz'