通过子字符串查找并打开文件夹
Find and open a folder by its substring
我有以下需求,不知道如何解决:
- 给出的是一个类似 "PA01021234" 的字符串(带有显示对话框和用户输入)
- 在已安装的网络卷上有一个名为 "PA01021234_xyz"
的文件夹
- 我希望我的 Applescript 通过其子字符串找到该文件夹并打开它
我想我需要一个包含我卷上所有文件夹的数组和一个将文件夹名称与我的子字符串进行比较的循环。但我不知道如何实现这一点,因为我对 Applescript 不是很熟悉。
而且我不知道纯 Applescript 是否可行,或者我是否需要一些 shell 脚本。
感谢任何帮助!
编辑:
附加要求如下:
- 要查找的文件夹将始终位于已安装网络卷的第一层。
- 子字符串(例如 PA01021234)将始终位于文件夹名称的开头。
- 永远只有一种可能的匹配。
试试这个 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' 如果未找到。
我有以下需求,不知道如何解决:
- 给出的是一个类似 "PA01021234" 的字符串(带有显示对话框和用户输入)
- 在已安装的网络卷上有一个名为 "PA01021234_xyz" 的文件夹
- 我希望我的 Applescript 通过其子字符串找到该文件夹并打开它
我想我需要一个包含我卷上所有文件夹的数组和一个将文件夹名称与我的子字符串进行比较的循环。但我不知道如何实现这一点,因为我对 Applescript 不是很熟悉。
而且我不知道纯 Applescript 是否可行,或者我是否需要一些 shell 脚本。
感谢任何帮助!
编辑:
附加要求如下:
- 要查找的文件夹将始终位于已安装网络卷的第一层。
- 子字符串(例如 PA01021234)将始终位于文件夹名称的开头。
- 永远只有一种可能的匹配。
试试这个 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' 如果未找到。