List all applications - output as text file

我只是一个虾纸丫 提交于 2019-12-18 13:48:08

问题


I was just wondering how someone would go about finding all the applications that are installed on Mac OS X 10.5 using preferably applescript and output all their application names to a text file.


回答1:


All the applications installed under Mac OS X are registered in the Launch Services database.

The Launch Services framework contains a helper shell command lsregister which among other uses can dump the information stored in the Launch Services database. Under Mac OS X 10.5 and 10.6 that command is located in the following folder:

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

Using a few simple grep filters one can extract the full paths of all registered applications:

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

Putting it all together, the following AppleScript will compute the user visible names of all registered applications using the info for command:

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



回答2:


There are a few methods in this post, depending on how in-depth you want your search to be. Also not sure if that's exactly the output format you want, but you can probably tweak it for your specific needs.




回答3:


I use the system_profiler command to get my text. Then you can parse as needed.

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

maybe pipe it to a text file and then use sed ....

Bash commands can be called through applescript if you want to have an application or you can save the script with a .command extension and the user will be able to double-click on it.




回答4:


For poeple like me using bash scripting to reach their goals here is a bash variant of the script:

#!/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 }'

This gives a list of all apps without the .app extension.



来源:https://stackoverflow.com/questions/3444326/list-all-applications-output-as-text-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!