Mac Automator-压缩(ZIP)文件夹并重命名为原始文件夹名称,但没有完整路径

问题描述 投票:0回答:1

嗨,对任何一种编程来说都是新手,但是我写了一个Automator工作流程来完成我每天要做的重复性任务。基本上,我正在准备图稿文件和文件夹以发送到打印机。步骤如下:

设置变量的值(变量是ArtworkFolder)

我将包含插图文件的图稿文件夹放在其中,PDF

获取指定的查找器项目

在RAID服务器上找到文件

将查找器项目复制到(到ArtworkFolder)

将所述文件复制到文件夹中

要求确认-

提示用户选择更新的PDF

询问查找器项目-

打开新PDF所在的文件夹

将查找器项目复制到(到ArtworkFolder)-

将PDF文件复制到文件夹(覆盖旧文件)

要求确认

提示用户选择打印准则

询问查找器项目

打开打印指南所在的文件夹

将查找器项目复制(到变量ArtworkFolder)-

将打印指南复制到文件夹中

这是我认为可能会出现问题的位置

获取变量的值(ArtworkFolder)

应该获得原始文件夹的名称

获取指定的查找器项目

及其所有内容

创建存档

然后将全部拉链在一起

但是它用名称Archive.zip压缩它,我不想这样...

重命名查找器项目:替换文本

设置为仅在不区分大小写的情况下在基本名称中找到“存档”。然后将其替换为变量ArtworkFolder

但是它使用整个路径重命名了文件夹

我已经尝试通过添加来去除路径...

重命名查找器项目:替换文本

设置为仅在路径基本名称中查找所有内容,直到唯一的文件夹名称,不进行任何替换(例如,我离开了“替换”框空白)

但是它会像这样复制文件夹名称:

00000-测试图稿文件夹/ 00000-测试图稿文件夹.zip

我只想将原始文件夹名称(00000- Test Artwork文件夹)设置为zip文件名。

任何提示都会受到欢迎!

macos automator pathname
1个回答
0
投票

出于任何原因,Automator都没有包含操作来获取文件名,因此您将需要使用第三方操作或自己执行。可以使用Run AppleScript操作,但无论哪种方式,请注意,您将需要保存工作流程项并在获取名称时适当使用Ignore Input选项,因此不会获取它们。与文件项混合(还请注意,工作流和操作项是list)。

要获取单个项目的名称,可以将以下内容插入工作流程,其中名称变量可以在重命名操作中使用:

变量的设置值 {变量:原始输入}-存储当前项目

运行AppleScript:-获得名称

on run {input, parameters}
    set {theContainer, theName, theExtension} to getNamePieces from (first item of input)
    return theName
end run

to getNamePieces from somePath
    tell application "System Events" to tell disk item (somePath as text)
        set _container to path of container
        set {_name, _extension} to {name, name extension}
    end tell
    if _extension is not "" then
        set _name to text 1 thru -((count _extension) + 2) of _name -- just the name part
        set _extension to "." & _extension
    end if
    return {_container, _name, _extension}
end getNamePieces

变量的设置值 {变量:项目名称}

获取变量的值 {变量:原始输入}(忽略输入-继续工作流程

© www.soinside.com 2019 - 2024. All rights reserved.