из CSV имен файлов найдите и откройте несколько файлов в папке (или подпапках) - PullRequest
1 голос
/ 26 июня 2009

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

Фотографии

| - Камера A

| - CameraB

| - CameraC

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

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

Ответы [ 3 ]

1 голос
/ 28 июня 2009

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

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

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

1 голос
/ 27 августа 2009

Хммм, сейчас у меня не работает код!

Запаниковал и обыскал "поиск по булевому центру" - и нашел EasyFind! Бесплатное ПО от Devon Technologies: http://www.devon -technologies.com / продукты / бесплатные / index.html

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

1 голос
/ 26 июня 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...