desde un CSV de nombres de archivos, busque y abra múltiples archivos en una carpeta (o subcarpetas)

StackOverflow https://stackoverflow.com/questions/1046820

  •  20-08-2019
  •  | 
  •  

Pregunta

Cada carpeta de cámara tiene muchos miles de fotos, necesito abrir unos 20 archivos específicos que podrían ubicarse en una o más carpetas, todo dentro de una carpeta 'raíz':

  

Fotos

     

| - CameraA

     

| - CameraB

     

| - CameraC

Me gustaría pegar un CSV de los nombres de archivo (p. ej., 6504, 6505, 8902, 4501) en un Applescript (o preferiblemente si Applescript podría solicitarme una entrada), ejecutarlo y los archivos se abrirán en Photoshop. ¡Es tedioso buscar un archivo a la vez en foco!

He localizado las secuencias de comandos para buscar un solo archivo, una secuencia de comandos para abrir archivos en Photoshop, pero no tengo esperanzas en matrices y bucles, suponiendo que AppleScript puede hacer esto.

¿Fue útil?

Solución

¿Realmente necesitas que sea un AppleScript específicamente? Es más fácil con scripting de shell si me preguntas:

for f in 6504 6505 8902 4501; do find . -name "$f" -exec open -a "Photoshop" {} \;; done

Donde los números se reemplazan con los nombres de archivo deseados y " Photoshop " se reemplaza con el nombre real de su aplicación de Photoshop en el disco (" Photoshop CS " o lo que sea).

Otros consejos

ok, he tenido un retoque y se me ocurrió una mitad de AppleScript mitad ShellScript que se expande en lo anterior. Agradezco cualquier comentario :)

esto funciona solicitando nombres de archivo parciales (separados por un espacio), buscando la ventana superior del Finder para obtener la ubicación actual de la carpeta (carpeta raíz para buscar), utiliza un Shell para agregar estrellas a las consultas de búsqueda (parcial nombres de archivo en lugar de completos), ejecute el comando de búsqueda de la carpeta 'raíz' que ya tenemos abierta en Finder. Los archivos encontrados se abren en Photoshop.

tell application "Finder"
try
    activate
    beep 1
    display dialog "Enter your image search:" default answer ""
    set dialogInfo to result
    set imgquery to text returned of dialogInfo

    set frontWin to folder of front window as string
    set frontWinPath to (get POSIX path of frontWin)
    tell application "Terminal"
        activate
        set starredImgQuery to do shell script "echo " & quoted form of imgquery & " | sed 's/ /\\* */g'"
        set starredImgQuery to "*" & starredImgQuery & "*"
        do shell script "cd \"" & frontWinPath & "\";for f in " & starredImgQuery & "; do find . -name \"$f\" -exec open -a \"/Applications/Adobe Photoshop CS4/Adobe Photoshop CS4.app\" {} \\;; done"
    end tell
    tell application "Terminal" to quit
on error error_message
    beep
    display dialog error_message buttons ¬
        {"OK"} default button 1
end try
end tell
¡

los comandos de shell son geniales!

¡Hmmm, el código no funciona para mí ahora!

En pánico y buscó alrededor de un " foco de búsqueda booleana " - y encontré EasyFind! Freeware de Devon Technologies: http://www.devon-technologies.com/products/freeware/index. html

Más rápido para trabajar y más fácil de adaptar, y funciona para búsquedas booleanas como arriba, encontrar la carpeta raíz y búsqueda booleana: 6504 o 6505 o 8902 o 4501

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top