5 votos

AppleScript para mostrar contenido del paquete original oculta de alias

Estoy intentando crear un flujo de trabajo de Automator (que se guarda como un Servicio, por lo que puedo acceder desde los menús contextuales e invocarlo con un atajo de teclado), que funcionará de manera similar a la del Buscador integrado en "Mostrar Contenido del Paquete" de comandos, sino que, además, aceptar un paquete de alias como entrada. El servicio va a satisfacer los siguientes:

Sólo estará disponible cuando el Buscador de la selección se compone de un paquete o de un paquete de alias.

En lugar de mostrar el contenido del directorio del paquete en sí, como la incorporada en el comando, el Servicio le mostrará el contenido de los "Contenidos" directorio (si es que existe), situado en el directorio del paquete.

Si el Buscador de la selección es un paquete o un alias en el escritorio, el directorio de Contenido debe abrirse en una nueva ventana del Finder. De lo contrario, el Contenido del directorio debe ser abierto en la ventana del Finder que contiene la selección.

Mi enfoque ha sido el script primero determinar si el archivo es un Alias, y si es que, a decir de la secuencia de comandos para mostrar el contenido de la original. Si el archivo no es un alias, me gustaría decirle al script simplemente para mostrar el contenido de la entrada.

Excluyendo la posibilidad de un alias como entrada y suponiendo que la entrada-el paquete es seleccionado en una ventana del Finder, me puede escribir correctamente una secuencia de comandos que muestra el contenido del paquete contenido de la carpeta en la misma ventana:

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

Cuando trato de establecer un "if...then...else" el esquema, yo no.

Estoy utilizando las últimas versiones de todo el software necesario.

2voto

adayzdone Puntos 1258

Puedes probar algo como esto:

   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

También puede incluir una prueba para asegurarse de que la entrada es del tipo esperado.

2voto

folder "Contents" oftambién trabaja 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

También puede asignar un método abreviado para mostrar contenido del paquete de preferencias del sistema:

Comando-R muestra el archivo original de un alias.

1voto

PaulHurleyuk Puntos 3394
Lo tengo

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X