da un CSV di nomi di file, trova e apri più file in una cartella (o sottocartelle)

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

  •  20-08-2019
  •  | 
  •  

Domanda

Ogni cartella della fotocamera ha molte migliaia di foto, ho bisogno di aprire 20 o più file specifici che potrebbero trovarsi in una o più cartelle, il tutto all'interno di una cartella 'root':

  

Foto

     

| - CameraA

     

| - CameraB

     

| - CameraC

Vorrei incollare un CSV dei nomi dei file (ad esempio 6504, 6505, 8902, 4501) in un Applescript (o preferibilmente se Applescript potrebbe richiedermi l'input?), eseguirlo e i file si aprono in Photoshop. È noioso cercare un file alla volta sotto i riflettori!

Ho trovato gli script per cercare un singolo file, uno script per aprire i file in Photoshop, ma sono senza speranza in array e loop, supponendo che applecript possa fare questo.

È stato utile?

Soluzione

Hai davvero bisogno che sia specificamente un AppleScript? È più facile con lo scripting della shell se mi chiedi:

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

Dove i numeri vengono sostituiti con i nomi dei file desiderati e " Photoshop " viene sostituito con il nome effettivo dell'applicazione Photoshop sul disco (" Photoshop CS " o altro).

Altri suggerimenti

ok, ho avuto un armeggiare e ho trovato un mezzo AppleScript e mezzo ShellScript che si espande su quanto sopra. Sono lieto di ricevere commenti :)

funziona richiedendo nomi di file parziali (separati da uno spazio), trovando la finestra del Finder più in alto per ottenere la posizione corrente della cartella (cartella principale da cui cercare), usando una Shell per aggiungere stelle alle query di ricerca (parziale nomi di file anziché completo), esegui il comando find dalla cartella 'root' che abbiamo già aperto nel Finder. I file trovati vengono aperti in 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

i comandi della shell sono fantastici !!

Hmmm, il codice non funziona per me adesso!

Nel panico e cercato in giro per un " riflettore booleano ricerca " - e trovato EasyFind! Freeware dalle tecnologie Devon: http://www.devon-technologies.com/products/freeware/index. html

Più veloce da lavorare e più facile da adattare e funziona per ricerche booleane come sopra, trova la cartella principale e ricerca booleana: 6504 o 6505 o 8902 o 4501

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top