Applescript для поиска и перемещения нескольких файлов (но с заменой некоторых символов в имени файла) - PullRequest
0 голосов
/ 15 января 2020

Я новичок в applecript. У меня есть строка с именами файлов (без суффиксов), разделенными пробелами, которые я могу скопировать.

Мне нужно найти и переместить несколько файлов из одной папки, соответствующих этим именам файлов. Я решил это с помощью: - вставки строки в textEdit - поиска и замены «пробелов запятыми» - запуска этого кода:

set fileContents to read (choose file with prompt "Choose a comma-delimited text file")
set theText to result
set AppleScript's text item delimiters to ","
set theTextItems to text items of theText
set AppleScript's text item delimiters to {""}
theTextItems
set theSourceFolder to (choose folder with prompt "Choose source folder") as string
set theDestination to (choose folder with prompt "Choose destination folder")
repeat with theEPSName in theTextItems
    tell application "Finder"
        set theEPSFile to theSourceFolder & theEPSName
        move file theEPSFile to folder theDestination with replacing
    end tell
end repeat

Я хотел автоматизировать весь процесс от копирования строки имен файлов в перемещение файлов.

Лучшее решение: -скрипт извлекает строку из моего буфера обмена (вместо «выберите файл с приглашением») - запускает «найти и заменить» «пробелы» на « запятая "- продолжается поиск и перемещение файлов

Второе лучшее решение: - я сохраняю имена файлов в textEdit -" найти и заменить "пробелы" на "запятые" интегрированы в the appleScript

Есть ли кто-нибудь со знанием чародея, чтобы помочь мне? Было бы здорово!

1 Ответ

1 голос
/ 15 января 2020

(the clipboard as text) выдаст вам содержимое буфера обмена в виде строки.

Если пробел является исходным разделителем, вы можете просто сделать (words of (the clipboard as text)) и пропустить шаги с запятыми и разделителями текстовых элементов.

words of не волнует, какой пробел находится между словами или сколько их. Это могут быть пробелы, табуляции, возврат каретки, переводы строк и, возможно, некоторые другие вещи в любой последовательности, поэтому вы можете свободно форматировать ввод.

Если у вас есть одно имя файла в строке, вы можете использовать paragraphs of, что может быть безопаснее, если ваши имена файлов содержат пробелы.

Откуда поступает ваш текстовый ввод? Возможно, вы тоже сможете написать эту часть. Например:

tell application "Finder" 
    set matches to (name of (files of window 1 whose name contains "foo"))
end tell

Содержимое буфера обмена кажется опасной вещью, но все в порядке.

Попробуйте что-то вроде этого:

set theSourceFolder to (choose folder with prompt "Choose source folder") as string
set theDestination to (choose folder with prompt "Choose destination folder")
repeat with theEPSName in (words of (the clipboard as text))
    tell application "Finder"
        set theEPSFile to theSourceFolder & theEPSName
        move file theEPSFile to folder theDestination with replacing
    end tell
end repeat
...