如何使用PowerShell批量删除Windows10文件夹内文件的所有属性
Windows 10 PowerShell清除文件元数据解决方案
可行性结论
完全可以实现,无需手动逐个删除属性,有可直接运行的现成方案。
方案1:系统原生PowerShell方案(无需安装额外工具)
直接调用Windows自带的Shell COM对象完成属性清除,步骤如下:
- 打开以管理员身份运行的PowerShell
- 进入你需要处理的目标文件夹,示例:
Set-Location "C:\你需要处理的文件夹路径"
- 运行批量清除命令:
$shell = New-Object -ComObject Shell.Application $targetPath = (Get-Location).Path $folder = $shell.Namespace($targetPath) # 如需处理子目录文件保留-Recurse,不需要可删除该参数 Get-ChildItem -Path $targetPath -File -Recurse | ForEach-Object { $file = $folder.ParseName($_.Name) # 遍历所有Windows支持的属性ID清空数值 for ($attrId = 0; $attrId -le 287; $attrId++) { $folder.SetDetailsOf($file, $attrId, '') } }
该方案可清除绝大多数常见格式文件的标题、作者、拍摄参数、EXIF等元数据。
方案2:全格式兼容方案(清除更彻底)
如果需要处理大量冷门格式、或者原生方案有残留,可使用单文件免安装的ExifTool工具,将下载好的exiftool.exe放到目标文件夹或者加入系统环境变量后,直接在PowerShell运行:
exiftool -all= -overwrite_original *
该命令支持几乎所有图片、视频、文档格式的元数据清除,不会产生额外备份文件。
注意事项
- 操作前建议提前备份重要文件,元数据清除后无法恢复
- 只读、加密或正在被其他程序占用的文件无法修改属性,需要先解除只读/占用后再操作
- 原生方案对部分特殊格式的自定义元数据支持有限,这类场景优先使用ExifTool方案
内容的提问来源于stack exchange,提问作者SilverSilencer
相关产品推荐
相关产品推荐

