我有成千上万的PDF文件,我想找到符合某些特征并执行操作的文件(合并为PDF格式)
例如,我有以下文件:
filegroup1_abc.pdf
filegroup2_xyz.pdf
filegroup3_qrs.pdf
filegroup3_lmn.pdf
我想找到每个具有相同前缀的文件,“filegroup1”并将它们合并为一个PDF,然后找到下一个匹配(filegroup2),然后找到下一个匹配等...
因此,在上面的示例中,最后两个将合并为一个新PDF,因为它们具有“Filegroup3”前缀。
我找到了一个使用applescript合并PDF的脚本;所以我的主要问题是如何搜索文件夹,找到这些文件,然后对它们执行操作。但是“filetype1”的模式是未知的,因此脚本首先需要检查每个文件并比较文件名中第一个X个字符匹配的时间。在这种情况下,前22个字符是相同的,表示文件之间的关系。
另外,我正在尝试使用applescript执行此操作,但使用其他方法可能更容易。
答案 0 :(得分:2)
--choose working folder
set ff to quoted form of POSIX path of (choose folder)
try
--returns files matching names as return-delimited text, filter to list of "paragraphs"
-- using built-in AS object text awareness
<强> [编辑] 强>
--OLD; incorrect:
--set allABCs to every paragraph of (do shell script "cd " & ff & ";" & "ls filegroup*_qrs.pdf")
-- new and improved:
set allABCs to every paragraph of (do shell script "cd " & ff & ";" & "ls filegroup1_???.pdf")
--that matches only 3-character strings. The following
-- matches any number of characters between _ and .pdf:
--set allABCs to every paragraph of (do shell script "cd " & ff & ";" & "ls filegroup1_*.pdf")
on error--it's in a try because if you mistakedly look for files that aren't there,
-- it will return an error. As an aside, doing 'ls' and getting folders
-- returns extra empty strings -- just a cautionary note that probably doesn't matter here
return {}
end try
- 还有一个您可能不需要的注意事项 - 您可能需要对结果进行排序以正确排序文件,如果这对您很重要