1

客户有一个巨大的 WordPress 上传文件夹,每个文件有 7 或 8 个大小版本。

我正在寻找过滤掉-NNNxNNN作为文件名一部分的所有图像 - “NNN”是任意数字。例如:

  • 原上传文件:7Metropolis711.jpg
  • 相同文件的调整大小版本示例:7Metropolis711-792x373.jpg

我为此使用Automator,我只是在寻找Applescript以从输入的文件文件夹中过滤掉这些文件.. IE:

在此处输入图像描述

4

2 回答 2

1

试试这个。您可以看到一个处理程序“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
于 2013-01-15T13:05:15.283 回答
1

这是另一种方法:

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

在此处输入图像描述

于 2013-01-15T13:58:34.630 回答