Windows 10中如何生成含文件标签的文件列表及识别未标记图片?
嘿,这个问题我刚好折腾过,Windows 10里确实能搞定文件标签相关的需求,DOS命令局限性太大,用PowerShell会灵活很多,给你分两部分说清楚:
一、生成包含文件标签的文件列表
Windows的文件标签(就是属性面板里的「标签」字段)属于文件的扩展属性,传统DOS的dir命令确实没法直接读取,但PowerShell可以轻松实现。
操作步骤很简单:
- 按下
Win+X,选择「Windows PowerShell」(或者「终端」里的PowerShell标签) - 用
cd命令切换到你要处理的文件夹,比如cd D:\我的图片库 - 执行下面的命令,它会把所有文件的名称、完整路径和标签导出成CSV文件:
Get-ChildItem -Recurse -File | Select-Object Name, FullName, @{Name="Tags"; Expression={$_.ExtendedProperties.System.Keywords}} | Export-Csv -Path "文件标签列表.csv" -Encoding UTF8
要是只想在控制台直接查看结果,去掉后面的导出部分就行:
Get-ChildItem -Recurse -File | Select-Object Name, FullName, @{Name="Tags"; Expression={$_.ExtendedProperties.System.Keywords}}
简单解释下命令里的关键部分:
Get-ChildItem -Recurse -File:递归遍历当前文件夹下的所有文件(包括子文件夹里的)@{Name="Tags"; Expression={$_.ExtendedProperties.System.Keywords}}:专门提取文件的标签属性,映射成「Tags」列Export-Csv:把结果导出成CSV,方便用Excel打开编辑和筛选
二、找出未添加标签的图片
针对图片文件筛选无标签的,同样用PowerShell就能实现,而且可以指定图片格式:
执行下面的命令,就能列出所有无标签的JPG、PNG、BMP图片:
Get-ChildItem -Recurse -File -Include *.jpg,*.jpeg,*.png,*.bmp | Where-Object { $_.ExtendedProperties.System.Keywords -eq $null -or $_.ExtendedProperties.System.Keywords -eq "" } | Select-Object Name, FullName
需要导出成列表的话,加上导出命令就行:
Get-ChildItem -Recurse -File -Include *.jpg,*.jpeg,*.png,*.bmp | Where-Object { $_.ExtendedProperties.System.Keywords -eq $null -or $_.ExtendedProperties.System.Keywords -eq "" } | Select-Object Name, FullName | Export-Csv -Path "无标签图片列表.csv" -Encoding UTF8
这里的Where-Object是核心,它会过滤出标签为空或者从未设置过标签的文件。另外要注意,有些非常旧的图片格式可能不支持扩展属性,这类文件也会被归为无标签,属于正常情况。
内容的提问来源于stack exchange,提问作者dev1998




