7-Zip压缩可保留原始时间戳,方法包括:一、图形界面勾选“保留文件时间属性”;二、命令行用-mtc=on/-mtm=on/-mta=on参数;三、PowerShell预设时间再压缩;四、批处理脚本自动归档;五、解压后验证属性。

如果您使用7-Zip压缩文件后发现创建时间、修改时间或访问时间被更改为压缩时刻,说明压缩过程未正确保留原始时间戳。以下是实现时间戳保留或主动修改的多种操作路径:
一、图形界面中启用时间属性保留
在7-Zip文件管理器中添加文件到压缩包时,可通过勾选选项确保原始时间信息写入归档结构,避免系统自动覆盖为当前时间。
1、打开7-Zip文件管理器,选中待压缩的文件或文件夹。
2、点击工具栏“添加”按钮,或右键选择“添加到压缩包…”。
3、在弹出窗口中,展开“压缩选项”区域。
4、勾选“保留文件时间属性”复选框。
5、确认压缩格式(如7z、ZIP)、压缩级别等设置后,点击“确定”执行压缩。
二、命令行强制保留三类时间戳
7-Zip命令行支持独立控制创建时间(-mtc)、修改时间(-mtm)和访问时间(-mta)的保留行为,可组合使用以覆盖默认限制。
1、打开命令提示符(cmd)或PowerShell,导航至目标文件所在目录。
2、输入以下完整命令(以保留全部三类时间为例):
7z a -t7z archive.7z target_folder\ -mtc=on -mtm=on -mta=on
3、若仅需保留修改时间与创建时间,删除-mta=on参数即可。
4、执行后生成的7z压缩包内,解压时将还原对应时间戳(需解压端软件支持)。
三、使用PowerShell预设文件时间再压缩
当原始文件时间已被错误覆盖,可先用PowerShell重置其创建/修改/访问时间,再调用7-Zip打包,从而实现“人为设定时间戳”的效果。
1、以管理员身份运行PowerShell。
2、执行如下命令设置指定文件的时间属性:
$(Get-Item "example.txt").CreationTime = "2024-01-01 09:00:00"
$(Get-Item "example.txt").LastWriteTime = "2024-01-01 09:00:00"
$(Get-Item "example.txt").LastAccessTime = "2024-01-01 09:00:00"
3、确认时间已更新:Get-Item "example.txt" | Select-Object Name,CreationTime,LastWriteTime,LastAccessTime
4、随后使用7-Zip图形界面或命令行进行压缩,启用“保留文件时间属性”或对应-mt*参数。
四、通过批处理脚本实现带时间标记的自动压缩
适用于需按固定时间基准(如项目截止日、审计日期)批量生成具统一时间戳的归档包,绕过系统实时时间干扰。
1、新建文本文件,重命名为backup_with_time.bat。
2、编辑内容如下(将2024-01-01_090000替换为目标时间):
@echo off
set TARGET_DIR="C:\source"
set OUTPUT="archive_20240101_090000.7z"
"C:\Program Files\7-Zip\7z.exe" a -t7z %OUTPUT% %TARGET_DIR%\* -mtc=on -mtm=on -mta=on
3、双击运行该批处理文件,生成的压缩包将基于源文件当时已设定的时间戳归档。
4、如需在压缩前统一重置源文件时间,可在7z命令前插入PowerShell时间设置指令(需启用执行策略)。
五、验证时间戳是否生效
压缩完成后,必须通过解压并检查文件属性,或使用7-Zip内部查看功能确认时间字段是否真实写入归档元数据,而非仅依赖压缩界面显示。
1、在7-Zip文件管理器中双击打开刚生成的压缩包。
2、右键点击其中任意一个文件,选择“属性”。
3、切换至“时间”选项卡,观察“创建时间”、“修改时间”、“访问时间”是否与原始文件一致。
4、若显示为压缩时刻,则说明-mtc/-mtm/-mta参数未生效或源文件本身时间已被系统重置。
5、另存为新压缩包时,务必再次确认“保留文件时间属性”处于勾选状态。

















