繁体   English   中英

如何使用 Automator 重命名和移动下载到“下载”的文件,无论是否使用 Applescript、Shell 脚本或 Javascript?

How do I rename and move a file downloaded to 'Downloads" using Automator, with or without Applescript, Shell Script or Javascript?

提示:本站收集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 找到并移动(查找文件和移动文件),输出未被识别为 AppleScript 的输入。我得到“无法获取文件XXXX 作为别名”或者如果我尝试创建一个未定义的变量(尽管我已经尝试了很多次......作为 {},作为“”,作为输入的第 1 项)。

如果不清楚,我深表歉意,但我正在尽力解释它,并且不理解诸如“终端 ls”之类的术语。

感谢您收到任何帮助、建议和评论。 我真的很想尝试理解代码,以便我可以应用学习! 谢谢你,约翰

1 个回复

好的,您的问题是提取名称的多个部分。 诀窍是把它炸成小块。 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
1 使用Automator / Applescript将图像下载到特定目录

我试图在Automator中使用变量将图像保存到特定文件夹中。 奇怪的是,当您创建一个新文件夹并使用一个变量时,它允许您设置基本路径...但是,如果您尝试“下载URL”,则不允许您选择将变量添加到其上的基本路径。中断交易。 我确定applescript可以做得更好,但是我似乎无法弄清 ...

2 如果,Automator / Applescript重命名文件

我有一大堆由我的艺术家命名的图像。 我希望通过使用Automator避免给他更多的工作,但我是新手。 现在他们按照what001a和what002a命名,但应该是what001a和what001b。 所以基本上奇数编号为A,偶数编号为B.所以我需要一个脚本,将偶数编号改为B图像,并将它们重 ...

4 使用javascript从网站下载时如何重命名文件?

我有一个网页,其中包含指向不同域中另一个网站的链接,例如“ example.com \\ abc.msi”。 当我单击链接时,该文件开始下载,但是从该网站下载时我需要重命名该文件。 我该怎么做? 我尝试使用锚标签的下载属性,但由于某种原因,它无法正常工作。 这需要在客户端完成。 请帮忙 ...

5 使用HTML或JavaScript重命名后下载文件

我想从外部服务器下载文件,但重命名后。 假设http://playtictactoe.atwebpages.com/logo.png是我要下载的图像文件。 我使用了以下HTML: 但是这不会重命名文件。 我在某处看到这是因为服务器上的响应标头。 有没有办法忽略客户端的响应标头? ...

7 如何使用Javascript下载时允许用户重命名文件

我需要一个帮助。 使用Javascript / Angular.js下载时,我需要重命名文件。 实际上,我有一项功能可以将HTML表转换为excel表并下载。 我在下面解释我的代码。 在这里我需要文件下载之前,它将要求用户重命名文件然后下载。 请帮我。 ...

9 用Javascript下载和重命名文件

我想点击一个网址以下载文件,然后使用javascript重命名作为响应得到的文件。 我尝试了以下代码,但无法正常工作。 正在下载文件,但未发生重命名 我还有其他方法可以做到这一点吗? ...

10 下载Javascript重命名文件

我希望能够下载Web文件,但是当下载对话框打开时,文件名被重命名。 例如:文件: http://<server>/<site>/test.txt 当我单击下载文件时,下载对话框打开,文件名为: test001.txt 。 我该如何实现? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM