用 Codex 做了一个 Windows 右键菜单小工具:一键把文件日期改为当前时间
用 Codex 做了一个 Windows 右键菜单小工具:一键把文件日期改为当前时间
今天遇到一个很实际的小需求:一批渲染图已经修改完成,但 Windows 资源管理器里显示的日期还是旧时间。普通地改文件“创建时间/修改时间”还不够,因为图片内部的“拍摄日期”也会影响资源管理器的“日期”列。于是我和 Codex 一起把这个流程做成了一个可复用的小工具。
这个工具的初衷其实很朴素:有些工作并不是“什么时候完成”就必须“什么时候交付”。很多时候我们会提前把文件做完,但选择在更合适的时间统一发送。如果接收方只看文件最后修改时间,就可能推断出真实完成时间,从而对工作节奏产生不必要的联想。与其每次手动处理文件时间,不如把这件小事工具化,让交付文件的时间信息和实际发送节奏保持一致。
最终成品是一个 Windows 右键菜单工具:在目标文件夹里右键,点击“更新当前文件夹日期为现在”,就能把当前文件夹里的文件时间批量更新到当前时间;如果是图片,还会尽量同步更新 EXIF/XMP 里的日期字段。项目源码和安装包已经放到 GitHub,方便在不同电脑上复用。
1. 起因:为什么改了文件时间,资源管理器还是显示旧日期?
一开始我只是想把当前文件夹内的图片日期改成当前时间。用 PowerShell 修改文件属性后,CreationTime、LastWriteTime、LastAccessTime 都已经变成了当前时间。
但在资源管理器里看,部分图片的“日期”仍然显示为 2026/6/11。
后来用 Windows Shell 扩展属性和 ExifTool 检查后才确认:
- 文件系统日期已经改成功。
- 资源管理器显示的旧日期来自图片内部元数据。
- 这些 PNG 文件里旧日期主要存在于 XMP 字段中,例如
CreateDate、ModifyDate、MetadataDate、DateTimeOriginal。
也就是说,想让资源管理器里的“日期”真正更新,不能只改文件属性,还要改图片内部元数据。
2. 解决方案:PowerShell + ExifTool
最终脚本做了两件事。
第一,更新普通文件属性:
1 | $file.CreationTime = $now |
第二,如果检测到 ExifTool,就额外更新图片常见日期字段:
1 | -XMP-xmp:CreateDate |
这样更新后,资源管理器里的“日期”“修改日期”“创建日期”“拍摄日期”都会同步变成当前时间。
3. 做成右键菜单,而不是每次打开命令行
脚本跑通以后,真正影响效率的是入口。
如果每次都要打开 PowerShell、复制路径、运行命令,实际用起来还是麻烦。所以我把它做成了右键菜单工具:
- 在文件夹空白处右键:更新当前文件夹日期为现在。
- 对某个文件夹右键:更新此文件夹日期为现在。
安装脚本会把核心 PowerShell 脚本复制到:
1 | %LOCALAPPDATA%\UpdateFolderDates\Update-FolderDates.ps1 |
然后写入当前用户的注册表右键菜单项。这样不需要管理员权限,也不会污染系统目录。
4. Windows 11 新版右键菜单的取舍
这里踩了一个 Windows 11 的坑。
普通注册表方式添加的右键菜单项,通常不会直接出现在 Windows 11 新版右键菜单第一层,而是藏在“显示更多选项”里。
所以我最后保留了两个版本:
| 版本 | 特点 | 适合场景 |
|---|---|---|
| 右键新版菜单栏 | 保留 Windows 11 新版菜单,不重启资源管理器 | 想保持系统默认体验 |
| 右键经典版菜单栏 | 切换到经典右键菜单,功能直接显示 | 想一步点击完成 |
中间还遇到过一个问题:如果把菜单项错误注册到 Folder\shell,Windows 可能会把它当成文件夹的默认动作,导致双击文件夹不是打开,而是执行脚本。最后的修复方式是删除这个会抢占默认动作的项,并显式恢复 Directory\shell 的默认动作为 none。
5. 打包成两份一键安装/卸载文件
为了方便复制到另一台电脑,我把工具打包成两个版本目录,每个目录里只有两个文件:
1 | 安装-批量更新日期右键菜单.bat |
安装包是自包含的:
- 内置核心 PowerShell 脚本。
- 安装时自动写入本地工具目录。
- 自动注册右键菜单。
- 如果系统有
winget,会尝试自动安装 ExifTool。
卸载包会删除右键菜单和本地脚本。
项目已经同步到 GitHub:
https://github.com/RaymondGuoCGI/update-folder-dates-tool
6. 实际效果
现在我的工作流变成了:
- 进入目标文件夹。
- 右键空白处。
- 点击“更新当前文件夹日期为现在”。
- 按 F5 刷新资源管理器。
图片文件的文件属性和内部日期都会更新。对于渲染图、产品图、批量交付文件这类场景,这个小工具能省掉很多重复操作。
总结
这个小工具本身不复杂,但过程里有几个关键点:
- Windows 资源管理器的“日期”不一定等于文件修改时间。
- 图片内部 XMP/EXIF 日期会影响资源管理器显示。
- ExifTool 是处理图片元数据最稳的工具。
- Windows 11 新版右键菜单和经典右键菜单需要分开考虑。
- 写注册表右键菜单时,不能误抢文件夹双击默认动作。
这也是我比较喜欢用 Codex 做小工具的原因:需求很具体,路径很清晰,从排查、脚本、右键菜单、打包、GitHub 发布,可以一口气完成闭环。
项目地址: update-folder-dates-tool
发布日期: 2026年6月16日