【问题标题】:Searching in Finder from Selection从选择中在 Finder 中搜索
【发布时间】:2019-02-03 13:28:28
【问题描述】:

通常我会得到一个包含几十个文件名的 Excel 电子表格,然后我需要单独搜索。

Spreadhseet

有没有办法让我简单:

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

到目前为止,我已经尝试了搜索的第一部分,这就是我得到的结果: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”运行,稍后我可以将其分配给键盘快捷键。

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

标签: excel macos shell applescript automator


【解决方案1】:

我制作了一个 bash 脚本,它可以满足您的需求。您基本上会在 Excel 或任何其他应用程序中选择一堆文件名,然后使用 ⌘C 将它们复制到剪贴板。之后,您需要运行脚本,它会从剪贴板中获取项目并搜索与该名称匹配的 TIFF 或 JPEG 图像,并将它们复制到桌面上名为 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

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

$HOME/scripts/gather

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

chmod +x $HOME/scripts/gather

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

export PATH="$PATH":$HOME/scripts

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

gather

以下信息由 @user3439894 在 cmets 部分提供,因为我在这方面的深度不够......

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

【讨论】:

  • 您不能在 macOS 的系统偏好设置 > 键盘 > 快捷方式下为独立的 bash 脚本分配键盘快捷方式。
  • @user3439894 好的,谢谢您的意见。正如您可能已经从我的措辞中猜到的那样,这不是我自己做的事情:-) 我猜 OP 可以将脚本放在他的桌面上并双击它来运行它。或者你有另一个好主意要分享吗?再次感谢。
  • 要使用键盘快捷键,您必须使用 Run Shell Script 操作创建 Automator 服务工作流程,您可以在以下位置分配键盘快捷键:系统偏好设置 > 键盘 > 快捷键 > 服务
  • @user3439894 非常感谢 - 我已将其添加到答案中,因此人们不会错过它。
  • 这太棒了!我是 bash 的新手,所有的解释都是正确的!谢谢!它确实很容易从选择中搜索!虽然,如果选择中的至少 1 个文件不存在,它会停止并且不会复制任何文件。有没有机会让它在遇到错误的情况下继续搜索/复制?
猜你喜欢
  • 1970-01-01
  • 2020-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多