从文件名CSV,查找并打开文件夹(或子文件夹)中的多个文件

时间:2009-06-26 00:21:38

标签: macos applescript

每个相机文件夹都有数千张照片,我需要打开20个左右的特定文件,这些文件可以放在任何一个或多个文件夹中,所有文件都位于一个“根”文件夹中:

  

照片

     

| - CameraA

     

| - CameraB

     

| - CameraC

我想将文件名的CSV(例如6504,6505,8902,4501)粘贴到Applescript中(或者最好是Applescript可以提示我输入?),运行它,然后在Photoshop中打开文件。 在聚光灯下一次搜索一个文件很麻烦!

我找到了用于搜索单个文件的脚本,一个用于在photoshop中打开文件的脚本,但我对数组和循环没有希望,假设applescript可以做到这一点。

3 个答案:

答案 0 :(得分:1)

你真的需要它专门成为AppleScript吗?如果你问我,那么使用shell脚本会更容易:

for f in 6504 6505 8902 4501; do find . -name "$f" -exec open -a "Photoshop" {} \;; done

将数字替换为所需的文件名,并将“Photoshop”替换为磁盘上Photoshop应用程序的实际名称(“Photoshop CS”或其他)。

答案 1 :(得分:1)

好吧,我有一个修补匠,想出了一个半AppleScript半ShellScript,扩展了上述内容。我欢迎任何评论:)

这可以通过提示输入部分文件名(用空格分隔),找到最顶层的Finder窗口来获取当前文件夹位置(要搜索的根文件夹),使用Shell将星标添加到搜索查询中(部分文件名而不是完整的),从我们已经在Finder中打开的'root'文件夹执行find命令。找到的文件在Photoshop中打开。

tell application "Finder"
try
    activate
    beep 1
    display dialog "Enter your image search:" default answer ""
    set dialogInfo to result
    set imgquery to text returned of dialogInfo

    set frontWin to folder of front window as string
    set frontWinPath to (get POSIX path of frontWin)
    tell application "Terminal"
        activate
        set starredImgQuery to do shell script "echo " & quoted form of imgquery & " | sed 's/ /\\* */g'"
        set starredImgQuery to "*" & starredImgQuery & "*"
        do shell script "cd \"" & frontWinPath & "\";for f in " & starredImgQuery & "; do find . -name \"$f\" -exec open -a \"/Applications/Adobe Photoshop CS4/Adobe Photoshop CS4.app\" {} \\;; done"
    end tell
    tell application "Terminal" to quit
on error error_message
    beep
    display dialog error_message buttons ¬
        {"OK"} default button 1
end try
end tell

shell命令很棒!!

答案 2 :(得分:1)

嗯,代码现在对我不起作用了!

恐慌并四处寻找“聚光灯布尔搜索” - 并找到了EasyFind! Devon技术的免费软件: http://www.devon-technologies.com/products/freeware/index.html

使用起来更快,更容易适应,它适用于上面的布尔搜索,查找根文件夹和布尔搜索:6504或6505或8902或4501