Windows 10需借助PowerShell或ExifTool解析EXIF DateTimeOriginal字段,提取拍摄时间并按YYYYMMDD_HHMMSS格式重命名图片;PowerShell脚本调用System.Drawing读取属性36867,ExifTool则兼容性更强、支持更多格式。

如果您希望在 Windows 10 中为批量图片自动添加拍摄日期作为文件名前缀或后缀,但系统原生资源管理器不支持直接读取 EXIF 拍摄时间并参与重命名,则需借助 PowerShell 脚本解析照片元数据。以下是实现该目标的多种可行方法:
一、使用PowerShell脚本读取EXIF DateTimeOriginal并重命名
此方法通过调用 .NET 的 System.Drawing.Imaging.PropertyItem 类或第三方库解析 JPEG 文件的 EXIF 数据块,提取 DateTimeOriginal 字段(即真实拍摄时间),再按指定格式(如 YYYYMMDD_HHMMSS)构造新文件名。脚本全程在本地执行,无需安装额外图形软件。
1、以管理员身份打开 PowerShell(右键开始菜单 → Windows PowerShell(管理员))。
2、执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 允许运行本地脚本。
3、进入目标图片所在目录,输入:cd "C:\Your\Photo\Folder"。
4、复制并粘贴以下脚本后回车执行:
$photos = Get-ChildItem *.jpg, *.jpeg, *.tiff -File; foreach ($f in $photos) { try { $img = [System.Drawing.Image]::FromFile($f.FullName); $prop = $img.GetPropertyItem(36867); if ($prop.Value) { $dateStr = [System.Text.Encoding]::ASCII.GetString($prop.Value).TrimEnd("`0"); $dt = [datetime]::ParseExact($dateStr, "yyyy:MM:dd HH:mm:ss", $null); $newName = "{0:yyyyMMdd_HHmmss}_{1}" -f $dt, $f.Name; Rename-Item $f.FullName (Join-Path $f.DirectoryName $newName) } } catch {} finally { if ($img) { $img.Dispose() } } }
二、使用ExifTool命令行工具批量注入日期命名
ExifTool 是业界标准的元数据处理工具,能可靠读取几乎所有图像格式的 EXIF、XMP、IPTC 等字段,并支持输出格式化字符串用于重命名。其精度高于 .NET 原生类,尤其对非标准 JPEG 或 HEIC 文件兼容性更强。
1、从 https://exiftool.org/ 下载 Windows 版 exiftool(-k).exe,重命名为 exiftool.exe,放入任意路径(如 C:\exiftool\)。
2、将该路径添加至系统环境变量 PATH,或直接在图片目录下按住 Shift + 右键 → “在此处打开 PowerShell 窗口”。
3、执行以下命令(示例:前缀格式为 20230815_原始名.jpg):
exiftool "-FileName
4、如需保留原始文件并生成副本,添加 -o ./renamed/ 参数指定输出目录。
三、借助PowerToys PowerRename图形化批量重命名
PowerToys 是微软官方推出的高级实用工具集,其中 PowerRename 支持正则表达式与元数据变量结合,可调用系统已注册的图像解码器获取拍摄时间,适合不熟悉命令行的用户。需提前启用 PowerRename 模块并确保图片格式被系统正确识别。
1、访问 https://github.com/microsoft/PowerToys/releases 下载最新版 PowerToys 并安装。
2、安装后打开 PowerToys 设置 → 左侧选择 “PowerRename”,开启开关并勾选 “Enable advanced rename options”。
3、在资源管理器中打开图片文件夹,Ctrl+A 全选,右键 → “PowerRename”。
4、在搜索框留空,在替换框输入:"{CreationDate:yyyyMMdd_HHmmss}_{Name}"(注意:此处 CreationDate 实际调用的是系统文件创建时间;若需真实拍摄时间,必须先用 ExifTool 将 DateTimeOriginal 写入文件修改时间,再启用 PowerRename 的 “Use file date/time” 选项)。
四、预处理:用ExifTool统一同步拍摄时间到文件时间戳
因 PowerToys 和部分 PowerShell 方法依赖操作系统文件时间属性而非 EXIF 元数据,需先将照片的 DateTimeOriginal 写入文件的“修改时间”或“创建时间”,才能被后续工具识别。此步骤是方法三及部分脚本生效的前提条件。
1、确保已安装 ExifTool(参考方法二第1步)。
2、在图片目录下执行命令,将所有照片的 EXIF 拍摄时间写入文件修改时间:
exiftool "-FileModifyDate
3、执行后每个文件的修改时间将与拍摄时间一致,此时可安全使用资源管理器重命名或 PowerToys 的时间变量功能。










