0

我有一个文本文件,其中包含大约 500 个选定文件名(每个文件名在自己的行中),这些文件名来自我用 3,000 多张照片拍摄的事件。我希望能够在文件夹中找到所有这些图像,复制它们,然后将这些复制的文件移动到不同的文件夹中。

这就是我到目前为止所拥有的。现在它只是复制包含 3,000 张图像的整个文件夹并将其放入目标文件夹,而不是单个文件。

文本文件:

_EPW0847.jpg
_EPW0848.jpg
_EPW0853.jpg
ETC....

苹果脚本:

将照片设置为(阅读(选择带有提示“选择文本文件”的文件)的段落)
将 theSourceFolder 设置为(选择带有提示“选择源文件夹”的文件夹)作为字符串
将目标设置为(选择带有提示“选择目标文件夹”的文件夹)
用照片中的名字重复
    尝试
        告诉应用程序“Finder”将别名(theSourceFolder 和 theName)复制到 theDestination 并替换
    结束尝试
结束重复
告诉应用程序“Finder”
    告诉文件夹 theDestination 将 theCount1 设置为(项目数)作为字符串
结束告诉
将 theCount2 设置为(照片的计数)作为字符串
显示对话框(theCount1 & " of " & theCount2 & " 项目复制到 " & theDestination)按钮 {"OK"}

任何帮助都会很棒。我还不太了解苹果脚本,但我正在学习。谢谢!

4

2 回答 2

0
设置要读取的文件内容(选择带有提示“选择逗号分隔的文本文件”的文件)
将文本设置为结果
将 AppleScript 的文本项分隔符设置为 ","
将 theTextItems 设置为 theText 的文本项
将 AppleScript 的文本项分隔符设置为 {""}
文本项
将 theSourceFolder 设置为(选择带有提示“选择源文件夹”的文件夹)作为字符串
将目标设置为(选择带有提示“选择目标文件夹”的文件夹)
在 TextItems 中重复 EPSName
   告诉应用程序“Finder”
       将 EPSFile 设置为 SourceFolder 和 EPSName
       将文件 theEPSFile 移动到文件夹 theDestination 并替换
   结束告诉
结束重复
于 2012-10-05T20:03:29.773 回答
0

你很亲近!

set thePhotos to paragraphs of (read (choose file with prompt "Choose a text file"))
set theSourceFolder to (choose folder with prompt "Choose source folder")
set theDestination to (choose folder with prompt "Choose destination folder")
set dupeList to {}
repeat with theName in thePhotos
    try
        set end of dupeList to alias ((theSourceFolder as text) & theName)
    end try
end repeat

tell application "Finder" to duplicate dupeList to theDestination with replacing

set theCount1 to (count of dupeList) as text
set theCount2 to (count of thePhotos) as text
display dialog (theCount1 & " of " & theCount2 & " items copied to " & (theDestination as text)) buttons {"OK"}

如果文本文件中有空行,请尝试以下操作:

set thePhotos to paragraphs of (read (choose file with prompt "Choose a text file"))
set theSourceFolder to (choose folder with prompt "Choose source folder")
set theDestination to (choose folder with prompt "Choose destination folder")
set dupeList to {}

repeat with theName in thePhotos
    try
        if theName ≠ "" then
            set end of dupeList to alias ((theSourceFolder as text) & theName)
        end if
    end try
end repeat
于 2012-10-05T00:53:05.047 回答