我试图在Automator中使用变量将图像保存到特定文件夹中。 奇怪的是,当您创建一个新文件夹并使用一个变量时,它允许您设置基本路径...但是,如果您尝试“下载URL”,则不允许您选择将变量添加到其上的基本路径。中断交易。 我确定applescript可以做得更好,但是我似乎无法弄清 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我是编程新手,因此请原谅我缺乏知识。 我已经搜索了网站和互联网,但没有找到看似简单问题的答案。
我想自动化一些个人和商业文件的归档和重命名——它们是银行对账单,所以数字是匿名的。 我对理解代码很感兴趣,因此我也可以在之后对其进行调整,以进行进一步的操作(也许供其他人使用)。
文档将下载到 (mac) 下载文件夹中。 通常他们有这个名字:“Statement--12345678--98765432--1-06-2020-30-06-2020.pdf”开头的两组数字不是这些通用数字而是8个数字(虽然第一个数字有时没有列出,因为它是“0”)。 第二组两个数字是指两个日期,采用日-月-年格式。 有时第一个日期从上个月的最后一天开始!
作为一个新手,我从 Automator 开始 - 使用文件夹操作将单个文件移动到命名文件夹(按年份)。 然后我想重命名它们,以便第二个日期在 YYYYMMDD 格式的名称中排在第一位,这样它们就会自动按日期顺序列在年份文件夹中。 全名将变为“YYYYMMDD 98765432 Month YY”。
我可以自动移动文件(感谢automator); 我什至可以以正确的格式在名称的开头添加当前日期(但它将是当前日期而不是文件中的日期)。 但我不能做我真正想做的事:根据文件名中的日期更改名称。
然后我查看了 AppleScript。 下面的答案解决了命名问题 - 谢谢!
但是当我尝试拿起一堆文件时 - 其中有 25 个(很高兴被 Automator 找到并移动(查找文件和移动文件)output 未被识别为 AppleScript 的输入。我得到“无法获取文件XXXX 作为别名”,或者如果我尝试创建一个未定义的变量(尽管我已经尝试了很多次......作为 {},作为“”,作为输入的第 1 项)。
如果不清楚,我深表歉意,但我正在尽力解释它,并且不理解诸如“终端 ls”之类的术语。
感谢您收到任何帮助、建议和评论。 我真的很想尝试理解代码,这样我就可以应用所学,谢谢你,约翰
好的,您的问题是提取名称的多个部分。 诀窍是把它炸成小块。 GREP 是一个很好的工具,但对于 applescript “开箱即用”来说很棘手。
我使用一个名为“textSplit”的子程序来完成这项工作。 一旦文件名的每个部分都在变量中可用,您应该能够构建任何文件或文件夹名称......
这是我解决这个问题的方法:
set thisFileName to "Document--12345678--98765432--1-06-2020-30-06-2020.pdf"
-- first we split the name using the "--" separator
set mainParts to textSplit(thisFileName, "--")
-- we now copy the result to variables to handle it
copy mainParts to {prefixOne, numberOne, numberTwo, theTwoDates}
--> prefixOne = "Document"
--> numberOne = "12345678"
--> numberTwo = "98765432"
--> theTwoDates = "1-06-2020-30-06-2020.pdf"
-- get rid of the extension
set theDatesWithoutExtension to first item of textSplit(theTwoDates, ".")
-- split the dates
set splitDates to textSplit(theDatesWithoutExtension, "-")
-- copy result into nice variables
copy splitDates to {dayOne, monthOne, yearOne, dayTwo, monthTwo, yearTwo}
-- and then build the filename with whatever you want
set myNewFileName to yearOne & monthOne & dayOne & space & numberTwo & space & monthTwo & "-" & yearTwo & ".pdf"
--> "2020061 98765432 06-2020.pdf"
-- make folders, move files, rename…
-- ================================================================================================
on textSplit(theText, theDelimiter)
-- this will split a string and returns a list of substrings
set saveDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to {theDelimiter}
set theList to every text item of theText
set AppleScript's text item delimiters to saveDelim
return (theList)
end textSplit
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.