相关疑难解决方法(0)

通过_kMDItemUserTags或kMDItemOMUserTags在xattr中使用多个关键字

在重新组织图像时,出于对OSX Mavericks的期待,我正在编写一个脚本以将标签插入xattr图像文件的字段中,以便可以使用Spotlight搜索它们。(为了安全起见,我也在编辑EXIF。)

我的问题是:

  1. 最好使用哪个属性?_kMDItemUserTags似乎是OSX版本,但kMDItemOMUserTagsOpenMeta已在使用它。理想情况下,我希望将与Linux和OSX向前兼容。

  2. 如何设置多个标签?是用逗号或空格分隔还是其他?

作为示例,使用python xattr模块,我发出了以下命令:

xattr.setxattr(FileName, "_kMDItemUserTags", "Name - Sample")
xattr.setxattr(FileName, "kMDItemOMUserTags", "Name,Institution,Sample")
Run Code Online (Sandbox Code Playgroud)

我也看到这些标签的记载:kOMUserTagskMDItemkeywords,但不知道他们是否有可能实现?

编辑:进一步的调查表明,对于在10.8中可搜索的事物,

  • 您需要以com.apple.metadata作为kMD的开头:
  • 您必须进行十六进制编码或包装在plist中。

此python代码将为kMDItemFinderComment生成标记,可在聚光灯下搜索...

def writexattrs(F,TagList):

    """ writexattrs(F,TagList):
    writes the list of tags to three xattr field:
    'kMDItemFinderComment','_kMDItemUserTags','kMDItemOMUserTags'
       This version uses the xattr library """

    plistFront = '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><array>'
    plistEnd = '</array></plist>'
    plistTagString = ''
    for Tag in TagList:
        plistTagString = plistTagString + '<string>{}</string>'.format(Tag)
    TagText = plistFront …
Run Code Online (Sandbox Code Playgroud)

python macos spotlight xattr osx-mavericks

5
推荐指数
1
解决办法
2160
查看次数

用Applescript修改文件标签

我试图递归地从文件夹的所有内容中删除所有标签(OS X 10.9的新功能之一)。由于文件夹中有很多文件(并且文件夹中包含更多文件),因此我想尝试使用Applescript来简化此过程。我在网上看过,没有发现任何有用的信息。

另外,我在Finder或Standard Additions词典中找不到任何对我有帮助的内容。

可能是这样的:

set folder to "folder_path"
set files to (all files of folder)
for each file:
    check for tag (optional)
    remove all tags from file
Run Code Online (Sandbox Code Playgroud)

PS。上面的代码应该作为脚本功能的指南,而不是使其工作的确切代码。

applescript osx-mavericks

5
推荐指数
1
解决办法
3362
查看次数

标签 统计

osx-mavericks ×2

applescript ×1

macos ×1

python ×1

spotlight ×1

xattr ×1