【问题标题】:Pulling Comments File Property to Text File将评论文件属性拉到文本文件
【发布时间】:2017-08-11 01:53:53
【问题描述】:

我目前正在将目录中的文件中的名称、全名、基本名称提取到文本文件中。我还想从我正在查看的文件的属性中提取“评论”字段到同一个文本文件。

这可以使用 Get-ChildItem 还是我需要使用不同的东西?

    Get-ChildItem "\\otahnas02\TCG\Embroidery"  | Select Name, FullName, BaseName,
  @{ n = 'Folder'; e = { Convert-Path $_.PSParentPath } }, `
  @{ n = 'Foldername'; e = { ($_.PSPath -split '[\\]')[-2] } } | Sort-Object name |
    Export-Csv "\\nzsdf01\c$\SCRIPTS\EmbroideryUpdateDirectory.txt" -Encoding Utf8 -NoTypeInformation

我尝试在脚本的选择中添加注释,但这不起作用。我猜 Comments 属性不是 Get-ChildItem 的一部分?不是 powershell 专家。

Image of Properties

【问题讨论】:

  • 嗨卡洛斯,如果你这样做:Get-ChildItem "\\otahnas02\TCG\Embroidery" | Get-Member,是否有符合您需要的 Property Member Type?

标签: powershell


【解决方案1】:

这很棘手。您似乎正在尝试检索图像中的元数据,而不是文件的属性。默认情况下,Windows 资源管理器会显示许多文件(音乐、照片等)的元数据

MSFT 编写了一个函数Get-FileMetadata,您可以使用该函数通过标准图像文件和一些其他扩展来完成此任务。

如果这是一个专有文件(Illustrator?),您必须使用 Adob​​e 库来读取文件内容。见here

祝你好运

【讨论】:

  • 在我的测试中,元数据中似乎没有 cmets。这确实是一个非常棘手的问题。
  • 我说文件属性的唯一原因是因为右键单击>属性>详细信息选项卡。这些是通用的 .jpg/.png 文件。我想要实现的是注意到一堆 cmets 反对文件,然后通过我正在导出的文本文件传递给不同的软件。我将尝试使用 Get-FileMetadata,看看我最终会得到什么。
  • 如果我使用 $picMetadata = Get-FileMetaData -folder (Get-childitem C:\pics -Recurse -Directory).FullName powershell 抱怨 Get-FileMetaData 不被识别为命令。有什么想法吗?
  • 如果我使用 $picMetadata = Get-FileMetaData -folder (Get-childitem "c:\pics" -Recurse -Directory).FullName 这将返回我可以用来存储 cmets 的相机型号字段,尽管 powershell 说找不到与 -folder 匹配的参数。
  • 看起来你已经在你的答案中找到了答案。不幸的是,您必须针对该文件夹运行 Get-FileMetaData,然后过滤该文件夹。很高兴它对你有用:)
【解决方案2】:

下面选择 Comments 字段和我需要的所有其他属性。按名称对列表进行排序。

Get-FileMetaData -folder "C:\pics" | select 'Name', 'Path', 'Comments' | Sort-Object Name |
Export-CSV "C:\pics\textfile.csv" -encoding Utf8 -NoTypeInformation

唯一的问题是这比我的原始代码需要更多的时间来执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 2012-05-11
    相关资源
    最近更新 更多