怎么修改文件最后修改时间(图文)
修改文件最后修改时间有多种方法,根据不同操作系统和需求选择合适的方式:
推荐使用PowerShell(Windows)或touch命令(Linux/Mac)来修改文件的最后修改时间,这些方法简单易用且效果可靠。
Windows系统
方法1:使用PowerShell(推荐)
powershell
# 修改单个文件的最后修改时间 $filePath = "C:\path\to\your\file.txt" (Get-Item $filePath).LastWriteTime = "2023-12-01 15:30:00" # 修改多个文件 Get-ChildItem "C:\folder\*.txt" | ForEach-Object { $_.LastWriteTime = "2023-12-01 15:30:00" } # 同时修改创建时间和修改时间 $file = Get-Item $filePath $file.CreationTime = "2023-12-01 10:00:00" $file.LastWriteTime = "2023-12-01 15:30:00"方法2:使用命令提示符
cmd
# 复制文件以更新时间戳(不改变内容) copy /b filename.txt +,, # 或者使用powershell命令在cmd中执行 powershell "(Get-Item 'filename.txt').LastWriteTime = '2023-12-01 15:30:00'"方法3:图形界面操作
- 右键点击文件 → 属性
- 在"常规"选项卡中查看当前修改时间
- 虽然不能直接修改,但可以通过以下方式间接修改:
- 打开文件并保存(即使没有更改内容)
- 复制粘贴文件
Linux/Mac系统
方法1:使用touch命令
bash
# 修改文件的修改时间和访问时间 touch -d "2023-12-01 15:30:00" filename.txt # 只修改修改时间 touch -m -d "2023-12-01 15:30:00" filename.txt # 只修改访问时间 touch -a -d "2023-12-01 15:30:00" filename.txt # 使用时间戳格式 touch -m -t 202312011530 filename.txt # 修改多个文件 touch -m -d "2023-12-01 15:30:00" *.txt方法2:使用Python脚本
python
import os import time from datetime import datetime # 设置目标时间 target_time = time.mktime(datetime(2023, 12, 1, 15, 30).timetuple()) # 修改文件时间戳 os.utime("filename.txt", (target_time, target_time)) # 批量修改 import glob for file in glob.glob("*.txt"): os.utime(file, (target_time, target_time))编程方式修改
Python示例:
python
import os from datetime import datetime import time def change_file_mod_time(filepath, new_datetime_str): """ 修改文件的最后修改时间 :param filepath: 文件路径 :param new_datetime_str: 新的时间字符串,格式如 "2023-12-01 15:30:00" """ # 将字符串转换为时间戳 dt = datetime.strptime(new_datetime_str, "%Y-%m-%d %H:%M:%S") timestamp = time.mktime(dt.timetuple()) # 修改文件时间戳 os.utime(filepath, (timestamp, timestamp)) print(f"已修改 {filepath} 的最后修改时间为 {new_datetime_str}") # 使用示例 change_file_mod_time("example.txt", "2023-12-01 15:30:00")JavaScript (Node.js) 示例:
javascript
const fs = require('fs'); function changeFileModTime(filepath, newDate) { // newDate 可以是 Date 对象或时间戳 fs.utimes(filepath, newDate, newDate, (err) => { if (err) throw err; console.log(`已修改 ${filepath} 的时间戳`); }); } // 使用示例 const newDate = new Date('2023-12-01 15:30:00'); changeFileModTime('example.txt', newDate);批量修改工具
Windows批处理脚本:
batch
@echo off REM 批量修改文件时间戳 for %%f in (*.txt) do ( copy /b "%%f" +,, echo 已更新 %%f 的时间戳 ) pause使用第三方工具:
- Bulk File Changer(Windows)
- Attribute Changer(Windows)
- TimeStamp Changer(跨平台)
注意事项:
- 权限要求:修改系统文件需要管理员权限
- 格式要求:时间格式必须正确
- 时区影响:注意时区对时间显示的影响
- 系统限制:某些系统或文件系统可能有限制
- 备份建议:重要文件修改前建议备份
验证修改结果:
Windows PowerShell:
powershell
Get-Item "filename.txt" | Select-Object Name, LastWriteTimeLinux/Mac终端:
bash
ls -l filename.txt stat filename.txt # 显示详细时间信息
更新时间:2025-12-15 13:51:20
