AppleScript per mostrare il contenuto del pacchetto di originale nascosto di alias

5

Sto tentando di creare un flusso di lavoro di Automator (che verrà salvato come servizio, in modo che sia possibile accedervi da menu contestuali e richiamarlo con una scorciatoia da tastiera), che funzionerà in modo molto simile al built-in del Finder Comando "Mostra contenuto pacchetto", ma che accetta anche l'alias di un pacchetto come input. Il servizio soddisferà quanto segue:

Sarà disponibile solo quando la selezione del Finder consiste in un pacchetto o in un alias di un pacchetto.

Piuttosto che mostrare il contenuto della directory del pacchetto stesso come fa il comando integrato, il Servizio mostrerà il contenuto della directory "Contents" (se esiste), che si trova immediatamente all'interno della directory del pacchetto.

Se la selezione del Finder è un pacchetto o un alias sul desktop, la directory Contents dovrebbe essere aperta in una nuova finestra del Finder. Altrimenti, la directory Contents dovrebbe essere aperta nella finestra del Finder che contiene la selezione.

Il mio approccio è stato quello di fare in modo che lo script determini prima se il file è un alias e, in caso affermativo, di dire allo script di mostrare il contenuto dell'originale. Se il file non è un alias, vorrei dire allo script di mostrare semplicemente il contenuto dell'input.

Escludendo la possibilità di un alias come input e assumendo che il pacchetto di input sia selezionato in una finestra del Finder, posso scrivere correttamente uno script che mostri il contenuto della cartella del contenuto del pacchetto nella stessa finestra:

on run {input, parameters}
    set my_output to {}
    repeat with oneItem in input
        tell application "Finder" to set target of window 1 to ((oneItem as text) & "Contents")
end repeat
return input
end run

Quando provo a configurare uno schema "if ... then ... else", non riesco.

Sto utilizzando le ultime versioni di tutti i software pertinenti.

    
posta Parker 02.04.2014 - 13:27
fonte

3 risposte

1

folder "Contents" of funziona anche con alias:

on run {input, parameters}
    tell application "Finder"
        repeat with f in input
            open folder "Contents" of f
        end repeat
    end tell
end run

Puoi anche assegnare una scorciatoia per mostrare il contenuto del pacchetto da Preferenze di Sistema:

Comando-R mostra il file originale di un alias.

    
risposta data 02.04.2014 - 18:51
fonte
1

Puoi provare qualcosa del genere:

   on run {input, parameters}
    tell application "Finder"
        repeat with oneItem in input
            if kind of oneItem = "Alias" then set oneItem to oneItem's original item
            set contentsPath to (oneItem as text) & "Contents"
            if oneItem's container as text = (path to desktop as text) then
                open contentsPath
            else
                set target of window 1 to contentsPath
            end if
            activate
        end repeat
    end tell
end run

Potresti anche voler includere un test per assicurarti che l'input sia di tipo previsto.

    
risposta data 02.04.2014 - 16:55
fonte
0

Ho capito:

on run {input, parameters}
    tell application "Finder"
        repeat with f in input
            reveal f
            set target of window 1 to (folder "Contents" of f as text)
        end repeat
    end tell
end run
    
risposta data 02.04.2014 - 20:12
fonte

Leggi altre domande sui tag