У меня есть файл .xml, который необходимо скопировать в каждую подпапку папки. В этом файле есть переменная, которую необходимо изменить, чтобы она отражала имя папки (без пути).
Код, который у меня есть, генерирует новые папки в выбранной главной папке. Он делает это, получая имена файлов (например, .jpgs) в этой папке, создавая новые папки с тем же именем и помещая каждый .jpg в соответствующую папку. Теперь мне нужно отредактировать переменную в xml, которую я настроил как «vID», а затем скопировать ее в каждый файл.
tell application "Finder"
set selected to selection
set current_folder to item 1 of selected
set mlist to every file of current_folder
set theFile to choose file (* XML file with variable *)
set MyFolder to current_folder
repeat with this_file in mlist
set cur_ext to name extension of this_file
set new_name to text 1 thru -((length of cur_ext) + 2) of (name of this_file as text)
set stringToFind to "vID"
set stringToReplace to new_name
set theContent to read theFile as «class utf8»
set {oldTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, stringToFind}
set ti to every text item of theContent
set AppleScript's text item delimiters to stringToReplace
set newContent to ti as string
set AppleScript's text item delimiters to oldTID
try
set fd to open for access theFile with write permission
set eof of fd to 0
write newContent to fd as «class utf8»
close access fd
on error
close access theFile
end try
set new_folder to make new folder with properties {name:new_name} at current_folder
move this_file to new_folder
duplicate MyFile to new_folder
end repeat
end tell
В настоящее время код правильно генерирует папки, перемещает файлы .jpgs в их папки, редактирует XML и дублирует его в каждой папке. Проблема в том, что переменная не отражает каждую папку. Это просто изменено на имя последней папки. Пожалуйста, дайте мне знать, если вам нужны дополнительные разъяснения.