Редактирование: я уже создал подпапки заранее, используя автомат.(Applescript) Переименование и перемещение/упорядочивание файлов в подпапках
Я дизайнер, который в настоящее время разрабатывает для Android. Я использую приложение Sketch для экспорта всех моих активов, чтобы они имели эквивалентные суффиксы (например, -xxxhdpi, -xxhdpi, -xhdpi, -hdpi, -mdpi).
пример файлов: see the screenshot
пример папок: see the screenshot
То, что я пытаюсь сделать, это переместить все эти активы вложенные папки (/ xxxhdpi,/xxhdpi и т.д.) и обрезать их суффиксы.
Имея нулевые знания в программировании/applescripting, я попытался использовать Automator. Но я наткнулся на его ограничение относительных путей. После поиска большого количества ресурсов (включая Looking for an Applescript to find files and move them to different folder и Applescript: Create folders/subfolders and move multiple files). Это сбивает с толку, потому что я не могу понять, что делают эти линии. Но я придумал этот
tell application "Finder"
set assetsFolder to (target of front Finder window) as text
do shell script "cd " & (quoted form of POSIX path of assetsFolder) & "; "
set selectedItems to selection
repeat with this_item in selectedItems
if this_item's name contains "-xxxhdpi" then
set the theName to this_item's name
set the theSource to "-xxxhdpi"
set the theReplacement to ""
move this_item to folder "xxxhdpi" of folder assetsFolder
set name of this_item to my replace(theName, theSource, theReplacement)
end if
end repeat
end tell
on replace(theString, theSource, theReplacement)
set AppleScript's text item delimiters to theSource
set theItems to every text item of theString
set AppleScript's text item delimiters to theReplacement
return theItems as Unicode text
end replace
я понимаю, что это работает только для «xxxhdpi» случай, потому что я хочу, чтобы проверить его первым. В более позднее время я хотел бы, чтобы этот сценарий имел другие случаи, чтобы подать заявку на остальные суффиксы (извините, если мой английский плохой).
Скрипт отлично работает для переименования и перемещения. Но я не могу заставить их работать вместе.
Сейчас проблема заключается в этих двух строках:
set name of this_item to my replace(theName, theSource, theReplacement)
move this_item to folder "xxxhdpi" of folder assetsFolder
Либо файлы переименованы, но не двигаться, или файлы будут перемещены, но не будут переименованы.
Кроме того, я попытался найти плагины для выполнения этой конкретной задачи (организации активов Android), но мне не повезло. Либо я получил помощь для написания этого applescript, либо кто-то скажет мне эквивалентный плагин, который выполнит эту работу.
Заранее спасибо
Возможно, ваш сценарий завершился неудачно, потому что папка «xxxhdpi» не существует в папке с ресурсами. поэтому есть 2 решения: 1) легко, вы должны создать все вложенные папки в папке с активами, прежде чем запускать скрипт (подпапки xxxhdpi, xxhdpi, xhdpi, hdpi, mdpi). 2) вы изменяете свой скрипт, чтобы добавить проверку, если вложенная папка выходит и если ее не создает. действительно, вариант 1 очень прост! – pbell
Привет, pbell, благодарю вас за ваш ответ! Я забыл сказать, что я уже создал подпапки. Таким образом, скрипт работает, но только для одного условия (переименование или перемещение). –