如何运行Applescript Photoshop自动化操作批处理

时间:2019-06-24 16:31:20

标签: applescript photoshop

我正在尝试制作一个Applescript,它将启动Photoshop并调用“自动批处理”功能以运行特定的动作。我这样做的经验为零,而我的搜索仅得到了代码片段。我想知道是否有人可以帮助我。特别是是否有可能将源文件夹传递给批处理调用,然后再进行批处理调用。

特别是,我在尝试解决方法时遇到问题:

  1. 将源文件夹传递到“批处理选项”中

  2. 从Photoshop的Batch_Options中调用特定操作

  3. 使用这些选项运行批处理调用

我已经更新了部分包含的最新代码...

tell application "Finder"
    set sourceFolder to "Macintosh HD:Users:Joe:Desktop:Temp:" as alias
    set folderList to every item of folder sourceFolder as alias list

    do shell script "echo File Names are: " & folderList
end tell

tell application "Adobe Photoshop CC 2018"
    set action_set_name to "Save as Photoshop PDF"
    activate
    try
        set Batch_Options to {class:batch options, destination:save and close, error file:Error_File, file naming:{document name lower, extension lower}, macintosh compatible:true, override open:false, override save:true, suppress open:true, suppressprofile:true, unix compatible:true, windows compatible:true}
        batch "Save" from files folderList from action_set_name with options Batch_Options
    end try
end tell

输出:

“文件名是:Macintosh HD:Users:Joe:Desktop:Temp:Creature01_CO_v003.psdMacintosh HD:Users:Joe:Desktop:Temp:SecretLaboratory.psd”

Photoshop打开,然后什么也没有发生...

1 个答案:

答案 0 :(得分:0)

以下似乎在Automator中起作用:

    tell application "Finder"
        set sourceFolder to "Macintosh HD:Users:Joe:Desktop:Temp:" as alias
        set folderList to every item of folder sourceFolder as alias list
        do shell script "echo File Names are: " & folderList

        #Alias list needs to be converted to a string for it to work in Photoshop batch call
        set FileNames to {}
        repeat with i from 1 to the count of folderList
            set current_file to item i of folderList
            copy current_file as text to the end of FileNames
        end repeat

        #Setup error log
        set err_log to (sourceFolder as string) & "Error_Log.txt"
        if not (exists file err_log) then
            make new file at sourceFolder with properties {name:"Error_Log.txt"}
        end if
    end tell

    tell application "Adobe Photoshop CC 2018"
        set action_set_name to "SetA"
        activate
        set Batch_Options to {class:batch options, destination:save and close, error file:err_log, file naming:{document name lower, extension lower}, macintosh compatible:true, override open:false, override save:true, suppress open:true, suppressprofile:true, unix compatible:true, windows compatible:true}
        #First arg is the Action Name, second is the list of files, third is the Action Set Name
        batch "ActionA" from files FileNames from "SetA" with options Batch_Options
    end tell