PowerShell可批量修改文件创建和修改时间,需管理员权限;单文件用(Get-Item path).CreationTime/LastWriteTime=时间,批量用Get-ChildItem -Recurse -File | ForEach-Object设置。
直接用 powershell 批量改文件的创建时间和修改时间,不需要装软件,系统自带,关键是权限够、控制准、能批量。只要以管理员身份运行,就能绕过资源管理器的单文件限制,一次性处理成百上千个文件。
基础命令:单个文件快速修改
先确认路径和时间格式正确,再执行:
- 修改创建时间:`(Get-Item "C:\path\to\file.txt").CreationTime = "2024-01-01 09:00:00"`
- 修改修改时间(LastWriteTime):`(Get-Item "C:\path\to\file.txt").LastWriteTime = "2024-01-01 09:00:00"`
- 支持的时间格式包括:"2024-01-01 09:00:00"、"01/01/2024 09:00"、"2024-01-01T09:00:00"
批量处理:整个文件夹下的所有文件
进入目标文件夹后,运行以下命令(含子文件夹):
- 把所有文件的创建、修改、访问时间统一设为当前时间:
`Get-ChildItem -Recurse -File | ForEach-Object { $_.CreationTime = Get-Date; $_.LastWriteTime = Get-Date; $_.LastAccessTime = Get-Date }` - 设为指定时间(例如 2025年12月25日 14:30:00):
`$t = Get-Date "2025-12-25 14:30:00"; Get-ChildItem -Recurse -File | ForEach-Object { $_.CreationTime = $t; $_.LastWriteTime = $t }` - 只改 .log 文件的修改时间,不碰创建时间:
`Get-ChildItem -Path "D:\logs" -Filter "*.log" -File | ForEach-Object { $_.LastWriteTime = "2026-07-30 03:00:00" }`
安全提醒与常见问题
- 必须以管理员身份运行 PowerShell,否则部分系统文件或受保护目录会写入失败
- 时间修改是直接写入文件元数据,不可撤销,操作前建议备份重要文件或先试改1–2个文件
- 某些文件(如正在被程序占用的、NTFS权限受限的、或位于系统保护目录如 C:\Windows)可能跳过或报错,脚本不会中断,但会提示警告
- 若需排除子文件夹,去掉 -Recurse 参数;若只处理当前层文件,加上 -Depth 0(PowerShell 5.1+)

















