из CSV с именами файлов, найти и открыть несколько файлов в папке (или подпапках)

В каждой папке камеры есть много тысяч фотографий, мне нужно открыть около 20 определенных файлов, которые могут быть расположены в любой одной или нескольких папках, все в одной «корневой» папке:

Фотографии

|-- КамераA

|-- КамераB

|-- КамераC

Я хотел бы вставить CSV с именами файлов (например, 6504, 6505, 8902, 4501) в Applescript (или, что предпочтительнее, если бы Applescript мог запросить ввод данных?), запустить его, и файлы откроются в Photoshop. Утомительно искать один файл за раз в центре внимания!

Я нашел скрипты для поиска одного файла, скрипт для открытия файлов в фотошопе, но я безнадежен в массивах и циклах, предполагая, что applescript может это сделать.


person Community    schedule 26.06.2009    source источник


Ответы (3)


Вам действительно нужно, чтобы это был AppleScript? Со сценариями оболочки проще, если вы спросите меня:

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

Где номера заменяются желаемыми именами файлов, а «Photoshop» заменяется фактическим именем вашего приложения Photoshop на диске («Photoshop CS» или что-то еще).

person Chuck    schedule 26.06.2009
comment
он не совсем работал как есть, Photoshop не запустился, поэтому я использовал полный путь. А также имена файлов нуждались в , но я забыл упомянуть об этом, моя вина): for f in *0299 0327 d_0340; найти . -name $f -exec open -a /Applications/Adobe Photoshop CS4/Adobe Photoshop CS4.app {} \;; done Спасибо, Чак, ценю вашу помощь! - person ; 27.06.2009

Хорошо, я повозился и придумал наполовину AppleScript, наполовину ShellScript, который расширяет вышеизложенное. Буду рад любым комментариям :)

это работает, запрашивая частичные имена файлов (разделенные пробелом), находя самое верхнее окно Finder, чтобы получить текущее местоположение папки (корневая папка для поиска), использует Shell для добавления звезд к поисковым запросам (частичные имена файлов вместо full), выполните команду поиска из «корневой» папки, которую мы уже открыли в Finder. Найденные файлы открываются в 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

команды оболочки великолепны!!

person Community    schedule 28.06.2009

Хм, у меня теперь код не работает!

Запаниковал и стал искать "прожекторный логический поиск" - и нашел EasyFind! Бесплатное ПО от Devon Technologies: http://www.devon-technologies.com/products/freeware/index.html

Быстрее работать и легче адаптироваться, и он работает для логического поиска, как указано выше, найти корневую папку и логического поиска: 6504 или 6505, или 8902, или 4501.

person Jammy    schedule 26.08.2009