【发布时间】:2021-03-16 19:46:43
【问题描述】:
这应该很容易。
我们公司的文件名使用这种格式:yyyymmdd.brand.customername.pics
目标:为每个 FILE 新建一个同名的 FOLDER,不带文件扩展名。
自动化目标示例:
源文件:20210301.ABC.Jones.pics(文件)
目标结果:20210301.ABC.Jones(文件夹)
我一直在尝试获取排除路径的源文件的名称,但没有成功。
我的自动化是一个文件夹操作(以下是相关步骤)
- 当文件放入特定文件夹时,设置变量 TPEPathname = 文件名(带路径)
- 从步骤 1 中获取变量 TPEPathname 的值,将值传递到下一步。
- 使用 Get Selected Finder Items 获取对文件的引用,将 Finder 对象的引用传递到下一步
- 运行 AppleScript 以获取 Finder 对象文件名的名称,不包括路径(AppleScript 参见附图)
步骤 3 成功。第 4 步不返回任何内容。 (忽略文件名)
我还尝试通过将 TPEPathname 直接传入 AppleScript 来更改序列,而不是传入 Finder 对象。结果相同 - 第 3 步成功,第 4 步不返回任何内容。
问题: 我是否将步骤 3 Finder 对象正确地引用为 AppleScript 中的 INPUT 或 PARAMETER? “输入”的值似乎为空。我没有看到有关如何传入或引用 AppleScript 参数的文档。
AppleScript 中的“fileName”函数会真正获取并解析没有路径的文件名,还是文件名中的附加句点会导致问题?可接受的结果将是: yyyymmdd.brand.customername 或 yyyymmdd.brand.customername.pics
【问题讨论】:
-
input是一个别名说明符列表。至少您需要一个循环来分别处理每个文件。除此之外,别名不会响应fileName。您将显示fileName而不是fileNamex。所以有3个语法错误。 -
一次只有一个文件被传入AppleScript;不需要循环。如果我传入别名,我应该传入什么,或者我应该使用什么函数从别名中提取名称?我已显示 fileName 以验证它是否为 NULL,因此这不是实际的语法错误 - 它是用于测试的修订版:fileName 和 fileNameX 均为 NULL(并且我在上面指出忽略 fileNameX)
-
无论选择了多少文件
Get Finder Items都会始终将别名说明符列表传递给下一个操作(或一个空列表)。您只能使用Finder或System Events从别名中获取文件名。第一行display dialog input已经是语法错误。直接参数必须是text。 -
知道了。解释这些的参考文档在哪里?
标签: applescript automator