Как запустить приложение Mac OS X из командной строки? - PullRequest
3 голосов
/ 05 декабря 2011

«open -a» не является желаемым ответом, потому что я хочу автоматически отлаживать приложение Mac OS X.Это означает, что было бы лучше, если бы кто-то мог указать командную строку в формате [program] [args] .Таким образом, механизм ltrace может сделать [program] в качестве цели для отладки и принять [args] в качестве входных данных.

Я пробовал командную строку, например "/ Applications / Microsoft Office 2011 / Microsoft PowerPoint.app/Contents/MacOS/Microsoft PowerPoint" /Users/poc.pptx, запущен только процесс Microsoft Point, но poc.pptx нетоткрыл.

После очистки Microsoft Point с открытым файлом pptx это выглядит примерно так: / Applications / Microsoft Office 2011 / Microsoft PowerPoint.app/Contents/MacOS/Microsoft PowerPoint -psn_0_307275, аргумент отсутствует, poc.pptx ".

Я даже вручную использую" gdb / Applications / Microsoft Office 2011 / Microsoft PowerPoint.app/Contents/MacOS/Microsoft PowerPoint "и" set args /Users/poc.pptx ", а затем" r", целевое приложение не может работать с определенным открытым файлом.

Я в замешательстве, поэтому кто-то может помочь мне решить эту проблему?

Спасибо!

Ответы [ 5 ]

7 голосов
/ 28 февраля 2013

open -b com.microsoft.PowerPoint <filename>, кажется, работает для меня, чтобы открыть презентации из командной строки.

5 голосов
/ 20 октября 2013

Перейдите в каталог файлов, а затем введите

open -a "Microsoft PowerPoint" <filename.ppt>

Здесь «Microsoft PowerPoint» - это имя приложения Power Point, пожалуйста, проверьте имя Power Point, если оно отличается в каталоге вашего приложения.

Это прекрасно работает на моем MAC (OSX 10.8).

Мы также можем указать полный путь вместо просто имени файла.

    open -a "Microsoft PowerPoint" <ppt file path>

Это также работаетхорошо.

1 голос
/ 20 октября 2013

Если PowerPoint не открывает документ, переданный в качестве аргумента командной строки, то это отражает способ кодирования PowerPoint.Никто, кроме Microsoft, ничего не может с этим поделать.

ОС обычно не использует этот метод, чтобы сообщать приложениям об открытии документов.Вместо этого он передает Apple Events в приложение.Какао по умолчанию будет принимать аргументы командной строки и обрабатывать их аналогично событиям Apple, но, очевидно, PowerPoint переопределяет это поведение по умолчанию.

Если вы хотите отлаживать или отслеживать PowerPoint, я рекомендую вам сделать этов два этапа.Сначала запустите его без аргументов в программе отладчика или трассировки.Затем скажите, чтобы открыть документ.Вы можете сделать это обычным способом, используя Finder и / или Dock, или вы можете использовать open -a ....Такой запрос на открытие документа не запустит второй экземпляр PowerPoint, он доставит событие в уже запущенную PowerPoint, которую вы отлаживаете / отслеживаете.Таким образом, результат должен быть похож на то, что вы, кажется, хотите.

1 голос
/ 05 декабря 2011

Не уверен, поможет ли это вам (зависит от того, как вы хотите выполнить отладку), но вы можете использовать AppleScript из командной строки, например:

%osascript <<<EOD
tell application "Excel" to open "Users:xxx:Documents:sheet.xls"
EOD

При вводе таким способом ваш сценарий может содержать несколько строк, его не нужно ограничивать одной строкой.

0 голосов
/ 16 октября 2018

Я знаю, что это старый вопрос, но в любом случае вот мой 2ct.Я добавляю приложения, которые хочу открыть, через командную строку в /usr/local/bin как символическую ссылку.

Я никогда не сталкивался с какими-либо проблемами, но, как сказал Кен, все зависит от того, как приложение обрабатывает аргументы.

Пример с Visual Studio:

Первый Iпроверьте, что заставляет приложение запускать bij, выполняя файл внутри содержимого приложения, например:

$ /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron

Если это работает, тогда я создаю символическую ссылку следующим образом (ln -s <path-to-app> <path-to-symlink>):

$ ln -s /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron /usr/local/bin/vs

После этого я могу запустить Visual Studio с текущей папкой, загруженной как:

~/Development/SomeProject $ vs .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...