在Windows系统中,修改文件或文件夹的时间属性通常可以通过图形界面操作,但对于需要批量处理或自动化管理的场景,使用命令行工具会更加高效,Windows系统提供了多种命令行方式来修改时间,包括cmd中的dir、copy命令结合时间参数,以及更强大的PowerShell cmdlet,以下将详细介绍这些命令的使用方法、适用场景及注意事项。

使用CMD命令修改时间
copy命令修改文件时间
copy命令可以通过/b参数以二进制模式复制文件,并结合语法修改文件的创建时间和修改时间,要将file.txt的修改时间设置为当前系统时间,可以使用以下命令:
copy /b file.txt +,, file_new.txt
执行后,file_new.txt的修改时间会被更新为当前时间,若需保留原文件名,可先复制到新文件再删除原文件,此方法仅能修改文件的“修改时间”,无法直接修改“创建时间”或“访问时间”。
fsutil命令管理文件时间
fsutil是Windows文件系统管理工具,可通过file settimes参数修改文件的创建时间、修改时间和访问时间,命令格式如下:
fsutil file settimes 文件路径 创建时间 修改时间 访问时间
时间格式需为YYYY/MM/DD HH:MM:SS,将file.txt的时间全部设置为2023年1月1日12:00:00:

fsutil file settimes C:\path\to\file.txt 2023/01/01 12:00:00 2023/01/01 12:00:00 2023/01/01 12:00:00
注意:此命令需要管理员权限,且时间参数必须全部提供,不可省略。
forfiles命令批量修改时间
forfiles支持批量处理文件,可通过/m指定文件名、/c执行修改命令,将当前目录下所有.txt文件的修改时间设置为当前时间:
forfiles /m *.txt /c "cmd /c copy /b @file +,, @file"
若需设置特定时间,可结合date和time命令生成时间字符串,再通过copy命令应用。
使用PowerShell修改时间
PowerShell提供了更灵活的时间管理功能,主要通过Get-Item和Set-ItemProperty cmdlet实现。

修改单个文件时间
获取文件时间属性:
$file = Get-Item "C:\path\to\file.txt" $file.CreationTime = "2023-01-01T12:00:00" $file.LastWriteTime = "2023-01-01T12:00:00" $file.LastAccessTime = "2023-01-01T12:00:00" $file | Set-ItemProperty -Name CreationTime, LastWriteTime, LastAccessTime -Value $_.CreationTime
注意:PowerShell中的时间格式为YYYY-MM-DDTHH:MM:SS,需使用Set-ItemProperty保存修改。
批量修改文件时间
通过管道和Get-ChildItem遍历文件,批量修改时间,修改D:\Documents下所有.docx文件的创建时间为当前时间:
Get-ChildItem -Path "D:\Documents" -Filter *.docx | ForEach-Object {
$_.CreationTime = Get-Date
Set-ItemProperty -Path $_.FullName -Name CreationTime -Value $_.CreationTime
}
修改文件夹时间
文件夹的时间修改与文件类似,使用Get-Item获取文件夹对象后,直接修改CreationTime、LastWriteTime和LastAccessTime属性即可。
时间修改工具对比
以下是上述命令的适用场景对比:
| 命令工具 | 支持操作 | 优点 | 缺点 |
|---|---|---|---|
copy |
仅修改修改时间 | 简单快捷,无需额外参数 | 功能单一,无法批量处理 |
fsutil |
修改创建、修改、访问时间 | 精确控制所有时间属性 | 需管理员权限,时间格式严格 |
forfiles |
批量修改修改时间 | 支持通配符和条件筛选 | 仅限修改时间,语法较复杂 |
| PowerShell | 修改所有时间属性,支持批量 | 功能强大,可结合其他cmdlet | 需要PowerShell基础知识 |
注意事项
- 权限问题:修改系统文件或受保护文件的时间需管理员权限。
- 时间格式:
fsutil要求YYYY/MM/DD HH:MM:SS,PowerShell要求YYYY-MM-DDTHH:MM:SS,需严格匹配。 - 备份文件:批量修改前建议备份文件,避免误操作导致数据异常。
- 只读文件:对于只读文件,需先通过
attrib -r取消只读属性再修改时间。
相关问答FAQs
问题1:为什么使用fsutil修改文件时间时提示“拒绝访问”?
解答:fsutil需要管理员权限才能运行,请以管理员身份打开CMD或PowerShell,然后重新执行命令,确保目标文件未被其他程序占用,关闭可能使用该文件的程序后再尝试。
问题2:如何通过PowerShell将文件的修改时间设置为文件的创建时间?
解答:可以使用以下脚本实现:
$file = Get-Item "C:\path\to\file.txt" $file.LastWriteTime = $file.CreationTime Set-ItemProperty -Path $file.FullName -Name LastWriteTime -Value $file.LastWriteTime
此脚本获取文件的创建时间,并将其赋值给修改时间属性,最后保存修改。
