通过子字符串查找并打开文件夹

Find and open a folder by its substring

我有以下需求,不知道如何解决:

我想我需要一个包含我卷上所有文件夹的数组和一个将文件夹名称与我的子字符串进行比较的循环。但我不知道如何实现这一点,因为我对 Applescript 不是很熟悉。

而且我不知道纯 Applescript 是否可行,或者我是否需要一些 shell 脚本。

感谢任何帮助!


编辑:

附加要求如下:

  1. 要查找的文件夹将始终位于已安装网络卷的第一层。
  2. 子字符串(例如 PA01021234)将始终位于文件夹名称的开头。
  3. 永远只有一种可能的匹配。

试试这个 Shell 脚本:

#!/bin/bash
[ "$#" -lt 1 ] && exit 1

for mnt_pnt in $(df -t nfs | grep -v 'Filesystem' | awk '{print $NF}')
do
        find ${mnt_pnt} -name "" -type d -print | xargs nautilus
done

您必须像 bash find_mntdir.sh PA01021234 一样执行 bash <above_script.sh> <input>

在 applescript 中,您可以使用系统事件来获取此信息,如下所示:

set folderPath to findFolder("PA01021234", "Volume Name")

on findFolder(folderPrefix, diskName)
    tell application "System Events"
        set folderList to POSIX path of folders of disk diskName whose name begins with folderPrefix
    end tell

    if folderList is {} then
        return missing value
    else
        set theFolder to first item of folderList
        tell application "System Events"
            open folder theFolder
        end tell
        return theFolder
    end if
end findFolder

这将打开有问题的文件夹和 returns 和 returns 其 POSIX 路径,或者 returns 'missing value' 如果未找到。