macos - 如何使用变量获得“引用形式”?
问题描述
我一直在努力创建一个迭代文件并能够从聚光灯元数据中获取“关键字”元数据的脚本。在 stackoverflow 上获得其他人的帮助时,我已经能够获取元数据,但我无法遍历文件。
tell application "Finder"
set sourceFolder to folder POSIX file "/Users/jdavidson/Desktop/Upload/Birds and Butterflies/HighRes/"
set theFiles to files of sourceFolder
set inputPath to "/Users/jdavidson/Desktop/Upload/Birds and Butterflies/"
end tell
repeat with afile in theFiles
set filename to name of afile
set fname to text 1 thru ((offset of "." in filename) - 1) of filename
set pathVAR1 to "/Users/jdavidson/Desktop/Upload/Birds and Butterflies/HighRes/"
set pathVAR2 to pathVAR1 & filename
--set pathVAR3 to "\"" & pathVAR2 & "\""
set pathVAR3 to quoted form of pathVAR2
display dialog pathVAR3
set myvar to do shell script "mdls -name kMDItemKeywords " & pathVAR3
--Substring's the data to between "(" and ")"--
--set var1 to var1 + 1
set var2 to ((offset of ")" in myvar) - 1)
--set var2 to var2 - 1
set myKeywords to ((characters var1 thru var2 of myvar) as string)
display dialog myKeywords
end repeat
确实有效且不会出错的代码如下:
set myvar to do shell script "mdls -name kMDItemKeywords " & quoted form of "/Users/jdavidson/Desktop/Upload/Birds and Butterflies/To Process/Floral/RF78-3.tif"
set var1 to ((offset of "(" in myvar) + 1)
--set var1 to var1 + 1
set var2 to ((offset of ")" in myvar) - 1)
--set var2 to var2 - 1
set myKeywords to ((characters var1 thru var2 of myvar) as string)
display dialog myKeywords
问题是能够以“引用的形式”将变量传递给 shell
解决方案
更容易获取文件夹中的文件alias list
并从别名中获取 POSIX 路径。
path to desktop as text
是当前用户桌面的 (HFS) 路径
set sourceFolder to (path to desktop as text) & "Upload:Birds and Butterflies:HighRes:"
tell application "Finder"
set theFiles to files of folder sourceFolder as alias list
end tell
repeat with aFile in theFiles
set myvar to do shell script "mdls -name kMDItemKeywords " & quoted form of POSIX path of aFile
--- ...
end repeat
推荐阅读
- asp.net - 如何将 json 响应传递给 ASP.Net MVC 中的模型?
- json - json列表排序上的颤振类型错误
- apache-flink - 引起:java.util.concurrent.ExecutionException:java.io.IOException:无法刷新和关闭文件系统输出流到hdfs
- python-3.x - 为什么 ROS Publisher 没有循环就不能工作?
- xamarin - 滚动视图上方的浮动操作按钮卡在顶部
- python - 在通道上重复一个数组
- sql-server - 如何添加具有顺序值的标识列?
- json - 如何让 Angular 的 HttpClient 返回一个对象而不是一个字符串?
- c# - 如何签署 XFA PDF 签名字段?
- xaml - 水平列表视图中的内容视图未展开