1

我正在尝试制作执行以下操作的 Automator 服务:

  • 输入是选定的文件
  • 创建新文件夹并复制选定的文件
  • HELP* Applescript 获取创建日期/时间并过滤掉任何一分钟前制作的文件(一个名为 input[contains image path] 的变量被传递给此脚本)
  • 重命名文件
  • 调整文件大小

除了第 3 步之外,我一切正常,这很重要,因为如果该服务在同一个文件夹中第二次运行,则已经调整大小的文件将再次调整大小。为了解决这个问题,我想创建一个 Applescript 过滤掉 40 秒/1 分钟前创建的任何内容。

到目前为止,我有这个,它返回一个错误:

on run {input, parameters}


set theFileDate to (creation date of input as string)
display dialog theFileDate

return input
end run

我正在尝试显示对话框,以便我可以验证代码是否正常工作并查看日期/时间的格式

4

4 回答 4

2

您必须使用 Finder 的脚本字典来访问创建日期属性。

on run {input, parameters}
    tell application "Finder"
        set theFileDate to (creation date of input as string)
    end tell
    display dialog theFileDate
    return input
end run
于 2013-07-26T19:29:44.447 回答
0

或者。

您只需在文件处理完毕后设置标签索引颜色。并过滤那些不是标记颜色的。

在此示例中,我过滤掉带有标签索引Purple的项目

并且颜色处理过的项目为紫色,然后在第二次运行时被忽略。

在此处输入图像描述

于 2013-07-27T10:33:58.950 回答
0

尝试这个。请注意,您可以将“60”更改为“40”或任何其他所需的秒数。

on run {input, parameters}
    set filterDate to (current date) - 60
    set filteredFiles to {}

    repeat with i from 1 to count of input
        set thisFile to item i of input
        if (class of thisFile) is text then set thisFile to thisFile as alias
        set creationDate to (creation date of (get info for thisFile))
        if creationDate is greater than or equal to filterDate then
            set end of filteredFiles to (item i of input)
        end if
    end repeat

    return filteredFiles
end run
于 2013-07-27T16:32:06.250 回答
0

我处理了你的代码。我相信这更接近。

-- This script will (when completed) filter the list of Finder items in the input parameter
-- returning as an output only those files that meet the specified criteria.
on run {input, parameters}
    -- if no items were selected, tell the user and cancel the workflow
    if ((count of input) < 1) then
        display alert "This workflow will do nothing because no items were selected in the Finder"
        set CANCEL_WORKFLOW to -128
        error CANCEL_WORKFLOW
    end if
    -- select the items to be output by this action
    set output to {}
    repeat with thisItem in input
        -- display the thisItem's path name and creation date
        display dialog (thisItem as text)
        set theFileDate to (creation date of (get info for thisItem))
        display dialog theFileDate as text
        ------ replace the next line of code with a compare of theFileDate to current date -----
        set addThisItem to true
        -----------------------------------------------------------------------------------------------
        -- add items that meet the criteria to the output (which is a list)
        if addThisItem then
            set output to output & thisItem
        end if
    end repeat
    -- return the output of this action to be the input of the next action
    return output
end run

让我知道这是怎么回事。

-- 凯德尔
kaydell@yahoo.com
http://learnbymac.com

于 2013-07-27T10:09:02.007 回答