2015-07-18 7 views
0

Я пытаюсь с Apple Script, чтобы запустить три различных сценариев, которые бы Alow меня:Как запустить один сценарий за другим в компании Apple Script

  1. Преобразовать купленного файл m4a в «анонимной» m4a файл и извлечь его художественные работы (с FFmpeg)
  2. Присоединить обложку к файлу ранее преобразованного, так как преобразованный файл не будет поддерживать его художественные работы (с AtomicParsley)
  3. Удалить обложку с пути

У меня нет какого-либо знаний в области программирования, я собрал различный сценарий из Интернета и попытался сделать приложение, которое может сделать эти три простые задачи:

on open argv 
    set paths to "" 
    repeat with f in argv 
     set paths to paths & quoted form of POSIX path of f & " " 
    end repeat 
    tell application "Terminal" 
     do script "for f in " & paths & "; do ffmpeg -i \"$f\" -acodec copy -y \"$f\" output.jpg; done" 
     activate 
     do script "for f in " & paths & "; do AtomicParsley \"$f\" --artwork output.jpg; done" 
     activate 
     do script "rm output. jpg" 
     activate 
    end tell 
end open 

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

ответ

0

Попробуйте это, он использует команду Стандартные сценарии Сложение do shell script для запуска сценариев оболочки без открытия Terminal.app

on open argv 
    repeat with anItem in argv 
     set anItemPath to quoted form of POSIX path of anItem 
     do shell script "ffmpeg -i " & anItemPath & " -acodec copy -y " & anItemPath & " output.jpg" 
     do shell script "AtomicParsley " & anItemPath & " --artwork output.jpg; rm output. jpg" 
    end repeat 
end open 
+0

он не работает: преобразование не потому, что он запускает все сценарии сразу – mskx4

+0

я изменил второй '' & anItemPath & "'с уникальным именем файла, и теперь он работает. Это не сработало, потому что ffmpeg перезаписывает входной файл с его выходным файлом, что приводит к неудачному преобразованию. – mskx4

+0

Рад это услышать. Я заметил, что вы используете один и тот же файл для ввода и вывода, но я думал, что у вас есть веская причина для этого – vadian

Смежные вопросы