菜鸟科技网

Windows修改时间命令具体怎么用?

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

Windows修改时间命令具体怎么用?-图1
(图片来源网络,侵删)

使用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:

Windows修改时间命令具体怎么用?-图2
(图片来源网络,侵删)
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"

若需设置特定时间,可结合datetime命令生成时间字符串,再通过copy命令应用。

使用PowerShell修改时间

PowerShell提供了更灵活的时间管理功能,主要通过Get-ItemSet-ItemProperty cmdlet实现。

Windows修改时间命令具体怎么用?-图3
(图片来源网络,侵删)

修改单个文件时间

获取文件时间属性:

$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获取文件夹对象后,直接修改CreationTimeLastWriteTimeLastAccessTime属性即可。

时间修改工具对比

以下是上述命令的适用场景对比:

命令工具 支持操作 优点 缺点
copy 仅修改修改时间 简单快捷,无需额外参数 功能单一,无法批量处理
fsutil 修改创建、修改、访问时间 精确控制所有时间属性 需管理员权限,时间格式严格
forfiles 批量修改修改时间 支持通配符和条件筛选 仅限修改时间,语法较复杂
PowerShell 修改所有时间属性,支持批量 功能强大,可结合其他cmdlet 需要PowerShell基础知识

注意事项

  1. 权限问题:修改系统文件或受保护文件的时间需管理员权限。
  2. 时间格式fsutil要求YYYY/MM/DD HH:MM:SS,PowerShell要求YYYY-MM-DDTHH:MM:SS,需严格匹配。
  3. 备份文件:批量修改前建议备份文件,避免误操作导致数据异常。
  4. 只读文件:对于只读文件,需先通过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

此脚本获取文件的创建时间,并将其赋值给修改时间属性,最后保存修改。

分享:
扫描分享到社交APP
上一篇
下一篇