applescript以数字顺序移动文件

时间:2016-10-13 22:00:40

标签: automation applescript

我为朋友启动了一个项目,涉及将大量文件移动到特定文件夹中。我正在使用automator,因为我在我的mac上处理项目,但是automator没有移动数字编号的文件部分的功能。例如,我将有文件说"这个文件100"和病有100个这样的文件。然后是文件说"那个文件50"和病有200个这样的文件。该项目正在将这些文件拆分为自己的文件夹,但在部分中。如此恶劣的需要"这个文件" 1-25在一个文件夹26-80在花药等等。同样适用于"那些文件"但是没有一种模式只是我朋友要求的要求。

有没有一种简单的方法可以编写一个脚本,可以抓取1-25或任何具有相同文件名的续集顺序?因为使用automator一次移动一个文件已经花了很长时间。

非常感谢高级

1 个答案:

答案 0 :(得分:0)

我不确定是否完全理解您的命名约定,但总的来说,是的,使用Applescript,您可以根据名称将文件移动到文件夹中,最终添加序列号。

因为我不确定您的要求,至少,这里有一些主要操作的语法示例:

获取文件夹myFolder中名称包含xxx的文件列表:

Tell Application "Finder" to set myList to every file of myFolder whose name contains "xxx" 

然后你必须做一个重复/结束重复循环:

Repeat with aFile in myList
   -- do something here with aFile : example with name of aFile
end repeat 

在该循环中,您可以提取名称,解析它,添加计数器,...... 要将文件移动到新文件夹,您必须使用" move"告诉" Finder"集团。指令"制作"也可用于根据文件的名称或根名称创建新的目标文件夹。您必须记住,如果目标文件夹中已存在相同的文件名,则Applescript命令将给出错误:Finder能够添加" copy"在名称中,但你必须自己在Applescript中做。

关于要处理的文件数量的最后建议。如果这个数字不是那么高(少于几百),那么Applescript的速度还是可以的。如果您的文件数量要高得多,那么您必须使用shell命令,或者更好的是混合使用AS和shell命令。可以使用" do shell脚本"从AS调用shell命令。例如,从一个文件夹中获取1000个文件的列表对于AS来说非常耗时,但是使用“快速”操作会更快。命令!同样的副本。这是一个使用shell复制的例子' cp' :

do shell script "cp " & quoted form of (POSIX path of (aFile as string)) & " " & quoted form of (POSIX path of DestFolder) & (quoted form of newFileName)

注意:" Posix路径"将AS文件路径(Users:myName:Documents:File.txt)转换为shell路径(Users / myName / Documents / File.txt)

我希望它有所帮助。

相关问题