通过选择器在Finder中搜索

时间:2018-08-28 20:40:18

标签: excel macos shell applescript automator

通常,我得到一个包含数十个文件名的excel电子表格,然后我需要逐个搜索这些文件。

  

Spreadhseet

有没有一种我可以简单的方法:

  1. 选择所有文件名,例如Excel的 A行
  2. 然后在“此Mac”
  3. 上搜索所有这些文件
  4. 然后将所有找到的文件复制到桌面
  5. 上的新文件夹

到目前为止,我已经尝试了搜索的第一部分,这就是我得到的:a)

  

Automator with Variable. But the problem is, it only searches for 1 file from selection

b)

  

Automator with Shell Script (Copy to Clipboard > Open Finder > CMD+F (to highlight Search dialog) > CMD+V). It opens a new Finder window, but it doesn't paste the clipboard into search dialog

c)/usr/bin/pbcopy

on run {input, parameters}
    tell application "System Events"
        keystroke "f" using {command down}
        keystroke "v" using {command down}
    end tell    
    return input
end run`

最终结果,与选项b)相同。我打算在Automator中作为“ Service ”运行它,以后可以将其分配给Keyboard Shortcut。

我很确定为此应该有一个简单的shell选项-任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

我制作了一个val ints = ArrayWrapper(arrayOf(1, 2, 3)) { println("Array has been changed") } 脚本来满足您的需求。您基本上可以在Excel或任何其他应用程序中选择一堆文件名,然后使用 C 将它们复制到剪贴板。之后,您需要运行脚本,它将从剪贴板中获取项目并搜索与该名称匹配的TIFF或JPEG图像,并将其复制到桌面上名为bash的目录中:

Selected Files

我不确定您对#!/bin/bash # Get contents of clipboard into bash array files=( $(pbpaste) ) # Create output directory - no checks for already existing or already containing files OUTDIR="$HOME/Desktop/Selected Files" mkdir -p "$OUTDIR" # Iterate through fetching files for ((i=0;i<${#files[@]};i++)) ; do name=${files[i]} result=$( mdfind "kMDItemDisplayName == \"${name}.*\" && (kMDItemKind==\"TIFF image\" || kMDItemKind==\"JPEG image\")" ) if [ -f "$result" ]; then echo $name: $result cp "$result" "$OUTDIR" else echo ERROR: Searched for: $name, found $result fi done 的熟悉程度,因此您可以忽略以下内容...

为您自己的脚本创建一个新目录:

bash

使用文件名将上述脚本保存在该目录中:

mkdir -p $HOME/scripts

通过在 Terminal (终端)中键入以下内容来使脚本可执行:

$HOME/scripts/gather

编辑您的登录配置文件(chmod +x $HOME/scripts/gather )并将您的$HOME/.profile目录添加到PATH:

$HOME/scripts

然后启动一个新的 Terminal ,您可以使用保存在export PATH="$PATH":$HOME/scripts 中的任何脚本,而无需指定其完整路径,例如:

$HOME/scripts

由于@ user3439894在评论部分中提供了以下信息,因为我对此方面并不了解...

要使用键盘快捷键,您必须使用“运行Shell脚本” 操作创建一个 Automator “服务工作流程” ,您可以在以下位置分配键盘快捷键:系统偏好设置> 键盘> 快捷方式> 服务