编辑:我已经使用 automator 预先创建了子文件夹。
我是一名设计师,目前正在为 Android 设计。我使用 Sketch App 导出我的所有资产,以便它们具有相同的后缀(例如 -xxxhdpi、-xxhdpi、-xhdpi、-hdpi、-mdpi)。
文件示例: 见截图
文件夹示例: 见截图
我要做的是将所有这些资产移动到子文件夹(/xxxhdpi、/xxhdpi 等)并修剪它们的后缀。
在编程/applescripting 方面的知识为零,我尝试使用 Automator。但是我偶然发现了它对相对路径的限制。在搜索了很多资源之后(包括 寻找一个Applescript来查找文件并将它们移动到不同的文件夹和Applescript:创建文件夹/子文件夹并移动多个文件)。这有点令人困惑,因为我不太清楚这些行在做什么。但我想出了这个
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 的帮助,要么有人会告诉我一个可以完成这项工作的等效插件。
提前致谢