怎么修改文档的修改日期和时间(图文)
方法一:使用PowerShell(最推荐)
1. 修改单个文件的修改时间:
powershell
# 基本语法 $file = Get-Item "C:\path\to\your\document.docx" $file.LastWriteTime = "2024-01-01 15:30:00" # 示例 $file = Get-Item "D:\Documents\report.docx" $file.LastWriteTime = "2024-03-15 14:30:00"2. 批量修改多个文件:
powershell
# 修改指定文件夹下所有Word文档 Get-ChildItem "C:\Documents\*.docx" | ForEach-Object { $_.LastWriteTime = "2024-01-01 15:30:00" } # 修改多种文档类型 Get-ChildItem "C:\Documents" -Include *.docx,*.xlsx,*.pdf,*.txt | ForEach-Object { $_.LastWriteTime = "2024-01-01 15:30:00" }3. 递归修改子文件夹中的所有文件:
powershell
# 递归修改文件夹及子文件夹中的所有文件 Get-ChildItem "C:\MyDocuments" -Recurse -File | ForEach-Object { $_.LastWriteTime = "2024-01-01 15:30:00" }方法二:使用命令提示符(CMD)
1. 使用copy命令更新时间戳:
cmd
# 更新单个文件时间戳(不改变内容) copy /b document.docx +,, # 批量更新多个文件 for %f in (*.docx) do copy /b "%f" +,,2. 结合PowerShell命令:
cmd
# 在CMD中调用PowerShell修改时间 powershell "(Get-Item 'document.docx').LastWriteTime = '2024-01-01 15:30:00'"方法三:创建批处理脚本(.bat文件)
1. 简单批处理脚本:
batch
@echo off title 修改文档修改时间工具 color 0A echo 正在修改文档修改时间... powershell "(Get-Item 'document.docx').LastWriteTime = '2024-01-01 15:30:00'" echo 文档修改时间已成功更新! pause2. 交互式批处理脚本:
batch
@echo off title 批量修改文档时间工具 color 0A :main cls echo ======================================== echo 文档修改时间修改工具 echo ======================================== echo 1. 修改单个文件 echo 2. 批量修改指定类型文件 echo 3. 批量修改文件夹内所有文件 echo 4. 退出程序 echo ======================================== set /p choice=请选择操作 (1-4): if "%choice%"=="1" goto single_file if "%choice%"=="2" goto batch_type if "%choice%"=="3" goto batch_folder if "%choice%"=="4" exit goto main :single_file set /p filepath=请输入文件完整路径: set /p newtime=请输入新的修改时间 (格式: YYYY-MM-DD HH:MM:SS): powershell "(Get-Item '%filepath%').LastWriteTime = '%newtime%'" echo 文件修改时间已更新! pause goto main :batch_type set /p folder=请输入文件夹路径: set /p filetype=请输入文件类型 (如: *.docx): set /p newtime=请输入新的修改时间 (格式: YYYY-MM-DD HH:MM:SS): powershell "Get-ChildItem '%folder%\%filetype%' | ForEach-Object {$_.LastWriteTime = '%newtime%'}" echo 批量修改完成! pause goto main :batch_folder set /p folder=请输入文件夹路径: set /p newtime=请输入新的修改时间 (格式: YYYY-MM-DD HH:MM:SS): powershell "Get-ChildItem '%folder%' -Recurse -File | ForEach-Object {$_.LastWriteTime = '%newtime%'}" echo 批量修改完成! pause goto main方法四:使用图形界面工具
推荐的第三方工具:
- Attribute Changer - 功能强大的文件属性修改工具
- Bulk File Changer - 批量修改文件时间属性
- NirSoft FileDateChanger - 轻量级免费工具
方法五:使用Python脚本
python
import os import time from datetime import datetime def change_modification_time(file_path, new_datetime_str): """ 修改文件的修改时间 参数: file_path: 文件路径 new_datetime_str: 新的日期时间字符串,格式为 "YYYY-MM-DD HH:MM:SS" """ try: # 将字符串转换为时间戳 new_timestamp = time.mktime( datetime.strptime(new_datetime_str, "%Y-%m-%d %H:%M:%S").timetuple() ) # 获取当前访问时间 current_stat = os.stat(file_path) access_time = current_stat.st_atime # 修改文件的访问时间和修改时间 os.utime(file_path, (access_time, new_timestamp)) print(f"成功修改 {file_path} 的修改时间为 {new_datetime_str}") except Exception as e: print(f"修改失败: {e}") # 使用示例 change_modification_time("document.docx", "2024-03-15 14:30:00") # 批量修改 import glob files = glob.glob("*.docx") for file in files: change_modification_time(file, "2024-03-15 14:30:00")方法六:高级PowerShell技巧
1. 根据现有文件时间进行偏移:
powershell
# 将所有文件的修改时间向前推移1天 Get-ChildItem "*.docx" | ForEach-Object { $newTime = $_.LastWriteTime.AddDays(-1) $_.LastWriteTime = $newTime Write-Host "已将 $($_.Name) 的时间修改为 $newTime" }2. 随机化修改时间:
powershell
# 为每个文件设置随机修改时间(在指定范围内) $startDate = Get-Date "2024-01-01" $endDate = Get-Date "2024-12-31" Get-ChildItem "*.docx" | ForEach-Object { $randomDays = Get-Random -Minimum 0 -Maximum ($endDate - $startDate).Days $randomTime = $startDate.AddDays($randomDays) $_.LastWriteTime = $randomTime Write-Host "已将 $($_.Name) 的时间修改为 $randomTime" }验证修改结果
查看文件属性确认:
powershell
# 查看文件的详细时间信息 Get-Item "document.docx" | Select-Object Name, LastWriteTime, CreationTime, LastAccessTime注意事项
权限要求:
- 修改系统文件需要管理员权限
- 确保对目标文件具有写入权限
时间格式:
- 严格遵循 "YYYY-MM-DD HH:MM:SS" 格式
- 24小时制时间表示法
备份建议:
- 修改重要文件前建议备份
- 可以先在测试文件上验证脚本
兼容性:
- PowerShell方法适用于Windows 7及以上版本
- CMD方法兼容性最佳

更新时间:2025-12-18 13:51:10
