Переименовать дублированный файл с помощью applescript на основе списка excel / txt

#excel #applescript

#excel #эпплскрипт #applescript

Вопрос:

У меня возникли некоторые проблемы с созданием дублирования и переименованием списка файлов на основе файла Excel.

В файле Excel в столбце 1 есть исходное имя. В столбце 2 я ввожу новое имя. Существует базовая папка с большим количеством изображений, только изображения в файле Excel должны быть продублированы и переименованы.

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

Много пробовал с переименованием, но у меня работает только копирование.

 set listFile to POSIX path of (choose file)
set dataList to paragraphs of (read listFile as «class utf8»)

tell application "Finder"
    
    set ImageFile to "Macintosh HD:Users:joostjenneskens:Pictures:Base"
    
    set theFolder to "Macintosh HD:Users:joostjenneskens:Pictures:Destination"
    
    repeat with thisFileName in dataList
        
        with timeout of 1200 seconds
            
            duplicate (files of folder ImageFile whose name starts with (thisFileName as text)) to theFolder with replacing and exact copy
            
        end timeout
        
    end repeat
    
end tell  

Заранее спасибо за вашу помощь.

Ответ №1:

переименуйте повторяющиеся значения в формате файла Excel или txt.

Ответ №2:

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

 set AppleScript's text item delimiters to {tab} -- or ";" for CSV
copy (every text item of thisFileName) to {sourceFileName, destinationFileName}
set AppleScript's text item delimiters to {} -- dirty reset (you should save/restore the previous settings)
  

затем вы можете использовать две переменные sourceFileName и destinationFileName
и вычислить полные пути sourceFullPathName и destFullPathName

Я бы попробовал это для действия копирования

 log "Copying" amp; space amp; sourceFileName amp; " to " amp;  destinationFileName
do shell script "cp" amp; space amp; quoted form of posix path of sourceFullPathName amp; space amp; quoted form of posix path of destFullPathName
  

введите «man cp» в вашем терминале, чтобы выбрать подходящие параметры (с помощью «cp -v»)
Кстати, можно было бы создавать ссылки или псевдонимы с помощью «ln» вместо «cp»

условия

    (files of folder ImageFile whose name starts with (thisFileName as text))
  

должен вернуть список исходных файлов…
В режиме «cp» вы должны добавить вложенный цикл для их копирования, но как выяснить, какое имя назначения?

надеюсь, это может помочь…