Solicite texto, pase al terminal, en Automator

5

Estoy tratando de crear un servicio Automator simple para cambiar rápidamente los metadatos en las fotos. Me gustaría poder seleccionar x cantidad de archivos, ejecutar el servicio y obtener una ventana emergente que solicite el número f al que quiero cambiar:

En este momento, está configurado para capturar los archivos seleccionados en el buscador y ejecutar el siguiente comando de terminal:

exiftool -FNumber="1.8" -overwrite_original_in_place "$@"

(exiftoolunaaplicaciónutilizadaparaeditarmetadatos)

Estecomandofunciona,peroelFNumberestácodificadoa1.8.Megustaríapoderespecificardinámicamenteelnúmerofatravésdelcomando"Solicitar texto". Sin embargo, no sé cómo puedo solicitar texto y usar los archivos seleccionados como entradas al mismo tiempo. Hace anyo

    
pregunta cybbe 19.02.2012 - 13:26

2 respuestas

1

Si no estás especialmente obligado a usar el comando "Pedir texto" de Automator, puedes hacer esto:

En su servicio, haga que el elemento de acción sea "Ejecutar AppleScript" en lugar de "Ejecutar Shell Script"

Utilice este AppleScript:

on run {input, parameters}
    set myvar to text returned of (display dialog "What F-stop do you want to set?" default answer "1.8")
    repeat with myitem in input
        set myscript to "exiftool -FNumber=\"" & myvar & "\" -overwrite_original_in_place \"" & (POSIX path of myitem) & "\""
        do shell script myscript
    end repeat
end run

    
respondido por el Daniel 19.02.2012 - 14:49
1

Bueno, estaba trabajando en hacer lo mismo que @Daniel.

Pero estaba intentando pasar solo el comando exiftool una vez. Así que ahora tienes una opción :-).

  property ExifTool : "PathTo/exiftool -FNumber="
property ExifToolOption : "-FNumber="
on run {input, parameters}
    set pathList to ""
    repeat with i from 1 to count of items of input
        set this_item to item i of input
        set pathList to pathList & space & "\"" & (POSIX path of this_item) & "\"" as string

    end repeat
    display dialog "Enter FNumber" default answer "" buttons {"Cancel", "OK"} default button 2
    set fStop to text returned of the result
    set fStop to fStop as number
    do shell script ExifTool & space & ExifToolOption & fStop & space & "-overwrite_original_in_place" & space & pathList
end run
    
respondido por el markhunte 19.02.2012 - 15:13

Lea otras preguntas en las etiquetas