AppleScript kullanarak bir uygulamanın simge dosyası yolunu getirmenin bir yolu var mı?


0

Şu anda, bir uygulamaya bağlı simge dosyası yolunu almak istediğim bir Alfred iş akışı yazıyorum. Apple Script kullanarak bu şekilde yapmanın bir yolu var mı?

tell application "Finder"
    set appPath to POSIX path of (path to application "Terminal")
    set resourcesPath to appPath & "Contents/Resources"
    set contentFiles to (list folder resourcesPath)
end tell

Bunu yaparak dosya adlarının bir listesini almayı başardım ama şimdi dosyayı nasıl filtreleyeceğimi bilmiyorum .icns.


Şimdiye dek neler başarabildiniz? Ne denedin
bjbk

Yanıtlar:


1

Alfred'e aşina değilim, ancak AppleScript ve Uygulama Paketi Simgesinin yol adını almak genellikle kodlanmış bir kod değil, bu nedenle tek bir komutla yolunu bulmanız pek mümkün değil. Ek olarak, değeri uzantı CFBundleIconFileile birlikte veya onsuz olabilir .icns, bu nedenle Uygulama Paketi Simgesinin tam nitelikli yol adını oluştururken, kodunuzu yazarken bunu göz önünde bulundurmanız gerekir.

Bir örnek olarak, dahili kullanarak gösterileri Simge dosyası genellikle Uygulama Paketi içinde ve bu kadar bu durumda Kaynaklar klasör içinde olacaksa da, "Calculator.icns" ama yolu vermez, . Dolayısıyla , Uygulamanın dosyasındaki değeri almanız ve uzantı olup olmadığını kontrol etmeniz ve varsayılan konumda olup olmadığını görmek için test edip etmediğinizi kontrol etmeniz gerekir ./Applications/Calculator.app/Applications/Calculator.app/Contents/Info.plist/Applications/Calculator.app/Contents/Resources/Calculator.icnsCFBundleIconFile.plist.icns

Yani Terminal’de defaults, örneğin kullanarak sorgulama yaparsınız

defaults read /Applications/Calculator.app/Contents/Info.plist CFBundleIconFile

AppleScript'te sonuçları bir değişkene ayarlayabilir ve oradan gidebilirsiniz, örneğin:

set appIcon to do shell script "defaults read /Applications/Calculator.app/Contents/Info.plist CFBundleIconFile"

O döner: Calculator.icns

Buna karşılık,

defaults read /Applications/Utilities/Terminal.app/Contents/Info.plist CFBundleIconFile

İade: Terminal

Yine de FQP /Applications/Utilities/Terminal.app/Contents/Resources/Terminal.icns


-1

Deneyin:

do shell script "find " & quoted form of POSIX path of (path to application "Terminal") & " -iname \"*.icns\";"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.