客户有一个巨大的 WordPress 上传文件夹,每个文件有 7 或 8 个大小版本。
我正在寻找过滤掉-NNNxNNN
作为文件名一部分的所有图像 - “NNN”是任意数字。例如:
- 原上传文件:
7Metropolis711.jpg
- 相同文件的调整大小版本示例:
7Metropolis711-792x373.jpg
我为此使用Automator,我只是在寻找Applescript以从输入的文件文件夹中过滤掉这些文件.. IE:
客户有一个巨大的 WordPress 上传文件夹,每个文件有 7 或 8 个大小版本。
我正在寻找过滤掉-NNNxNNN
作为文件名一部分的所有图像 - “NNN”是任意数字。例如:
7Metropolis711.jpg
7Metropolis711-792x373.jpg
我为此使用Automator,我只是在寻找Applescript以从输入的文件文件夹中过滤掉这些文件.. IE:
试试这个。您可以看到一个处理程序“isFormatNNNxNNN(fileName)”,它测试您的格式的文件名。显然删除了代码的前 2 行。它们被使用,所以我可以在 AppleScript 编辑器中测试它。它们应该等于您在 Automator 中的输入变量。
编辑:根据您的评论,我修改了脚本以在文件名中包含多个“-”。现在我开始查看文件扩展名前面的文本,因为我假设您的格式是文件名中的最后一个字符。
它在 Automator 中不起作用,因为您必须在代码周围放置“on run {input, parameters}”。我现在已经这样做了,所以只需将其复制/粘贴到 automator 中。
on run {input, parameters}
set newList to {}
repeat with aFile in input
if not (my isFormatNNNxNNN(aFile)) then set end of newList to (contents of aFile)
end repeat
return newList
end run
on isFormatNNNxNNN(theFile)
set theBool to false
try
tell application "System Events"
set fileName to name of theFile
set fileExt to name extension of theFile
end tell
set endIndex to (count of fileExt) + 2
set nameText to text -(endIndex + 7) thru -endIndex of fileName
if nameText starts with "-" then
if character 5 of nameText is "x" then
-- test for numbers
text 2 thru 4 of nameText as number
text 6 thru 8 of nameText as number
set theBool to true
end if
end if
end try
return theBool
end isFormatNNNxNNN
这是另一种方法:
on run {input}
set newList to {}
repeat with aFile in input
tell application "System Events" to set fileName to name of aFile
try
set variableName to do shell script "echo " & quoted form of fileName & " | grep -Eo [0-9]{3}x[0-9]{3}"
on error
set end of newList to (aFile's contents)
end try
end repeat
return newList
end run