Как заставить After Effects завершиться после прохождения -r javascript из командной строки

#java #javascript #after-effects

#java #javascript #after-effects

Вопрос:

При передаче JavaScript myScript.jsx в After Effects я хочу, чтобы After Effects завершал работу по завершении:

«C:Program FilesAdobeAdobe After Effects CCФайлы поддержки AfterFX» -r «C:WorkspacesMyAEScriptsmyScript.jsx »

Итак, самая последняя строка в переданном скрипте JavaScript MyScript.jsx:

 app.quit();
  

Независимо от этой команды After Effects просто не хочет завершать работу. Я попытался включить

 app.exitAfterLaunchAndEval=true;
  

но это не помогло.

Если бы я передал тот же JavaScript, но использовал

AfterEffects.exe -s "here is same javascript ending with; app.quit();"

он завершается (завершается) красиво.

Я бы остался с передачей javascript (с использованием -r ). Но существует ограничение на количество символов, которые можно использовать в командной строке в Windows. Мне нужно иметь возможность заставить After Effects завершать работу после завершения выполнения переданного скрипта -r c:/path/to/myJavaScript.jsx .

Ответ №1:

возникла та же проблема, которую вы описываете, потому что проект изменился, и приложение ждет вашего ответа о том, сохранять его или нет.

легендарный Дэн Эббертс предлагает добавить:

 app.project.close(CloseOptions.DO_NOT_SAVE_CHANGES);
app.quit();
  

работает для меня

Ответ №2:

Иногда эти две команды не работают.

 app.project.close(CloseOptions.DO_NOT_SAVE_CHANGES);
app.quit();
  

Итак, вот еще одно решение, которое работает в Windows

 var killAeCommand = "TASKKILL /F /IM AfterFX.exe"; 
system.callSystem("cmd /c ""   killAeCommand   """)
  

Я не уверен, но я думаю, что эта команда уничтожит все экземпляры AE, в моем случае работает нормально, потому что у меня открыт только один.