Список всех приложений - вывод в виде текстового файла - PullRequest
2 голосов
/ 10 августа 2010

Мне было просто интересно, как кто-то найдет все приложения, которые установлены в Mac OS X 10.5, используя предпочтительно appleScript, и выведет все имена своих приложений в текстовый файл.

Ответы [ 4 ]

3 голосов
/ 10 августа 2010

Все приложения, установленные под Mac OS X, зарегистрированы в базе данных Launch Services .

Платформа Launch Services содержит вспомогательную команду оболочки lsregister, которая, помимо прочего, может выводитьинформация хранится в базе данных Launch Services.В Mac OS X 10.5 и 10.6 эта команда находится в следующей папке:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister

Используя несколько простых фильтров grep, можно извлечь полные пути всех зарегистрированных приложений:

lsregister -dump | grep --after-context 1 "^bundle" | grep --only-matching "/.*\.app"

Собрав все воедино, следующий AppleScript вычислит видимые пользователю имена всех зарегистрированных приложений, используя команду info for :

property pLSRegisterPath : "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister"

set theAppPaths to every paragraph of (do shell script pLSRegisterPath & " -dump | grep --after-context 1 \"^bundle\" | grep --only-matching \"/.*\\.app\"")

set theNames to {}
repeat with thePath in theAppPaths
    try
        copy displayed name of (info for (thePath as POSIX file)) to end of theNames
    end try
end repeat
choose from list theNames
1 голос
/ 11 августа 2010

Я использую команду system_profiler, чтобы получить мой текст.Затем вы можете при необходимости выполнить синтаксический анализ.

system_profiler SPApplicationsDataType

...

AppleScript Utility:

  Version: 1.1.1
  Last Modified: 5/18/09 10:34 PM
  Kind: Intel
  64-Bit (Intel): Yes
  Location: /System/Library/CoreServices/AppleScript Utility.app

возможно передать его в текстовый файл, а затем использовать sed ....

BashКоманды можно вызывать с помощью appleScript, если вы хотите иметь приложение или вы можете сохранить сценарий с расширением .command, и пользователь сможет дважды щелкнуть по нему.

1 голос
/ 10 августа 2010

В этом сообщении есть несколько методов , в зависимости от того, насколько глубоким будет ваш поиск.Также не уверен, что это именно тот формат вывода, который вам нужен, но вы, возможно, можете настроить его под свои нужды.

0 голосов
/ 20 февраля 2014

Для таких людей, как я, использующих сценарии bash для достижения своих целей, представлен вариант сценария bash:

#!/usr/bin/env bash

path='/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support'
$path/lsregister -dump | grep -A 1 "^bundle" | grep --only-matching "/.*\.app" | awk -F "/" '{ print $NF }' | awk -F "." '{ print $1 }'

Это дает список всех приложений без расширения .app.

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