我正在尝试找出最简单的方法来创建一个可以作为应用程序定期运行的文件夹,以便对文件夹进行一些维护。
例如: 桌面上有2个文件夹。一个名为“George Project”,另一个名为“Rocco项目”。
我需要将任何文件夹及其各自的子文件夹(包含George)移动到网络驱动器上的george文件夹(/ Volumes / AMT / George),以及包含Rocco等的任何文件夹的相同内容。
所有这些命名文件夹只能位于2个位置,因此我希望脚本检查包含这些名称的任何文件夹的两个位置,并将它们移动到网络上的正确位置。
到目前为止,我已经在我的本地驱动器上尝试过这个脚本,但它实际上没有移动任何东西:
global theWatchedFolder
set theWatchedFolder to choose folder
on idle
tell application "Finder"
set theDetectedItems to every item of theWatchedFolder whose name contains "rocco"
repeat with aDetectedItem in theDetectedItems
move aDetectedItem to "/Users/Rocco/Test"
end repeat
end tell
return 1
end idle
答案 0 :(得分:0)
1)在移动指令中你必须使用Finder路径(User:Rocco:Test :)而不是Unix路径(/ Users / Rocco / Test)。目标文件夹也应该是别名,而不是字符串
move aDetectedItem to ("Users:Rocco:Test:" as alias)
2)返回1将强制您的脚本仅在1秒后运行。当然太快了。可能已经是每30秒应该足以不杀死你的系统。
3)当源和目标位于不同的卷上时(似乎是这种情况),移动命令不会“移动”但是会执行复制。您的文件将保留在源文件夹中,然后您的脚本将继续将它们复制到目标文件夹。成功移动后,您应该删除它们。
4)为什么不在2个桌面文件夹上使用文件夹操作脚本而不是使用'idle'处理程序?使用“on adding item”处理程序,每次在文件夹中添加项目(文件或文件夹)时脚本都会运行(George Project的一个脚本和Rocco项目几乎相同)。此脚本应查找添加的所有文件/文件夹,移动它们,并最终删除它们。因为只有添加的项目是使用此处理程序处理的,所以您不必强制删除已处理的项目。