使用 PowerShell和工具软件在 Windows 中更改文件时间戳

Windows 为每个文件和文件夹维护三个不同的日期/时间戳。它们是“创建日期”、“修改日期”和“访问日期”。在某些情况下,您可能必须更改文件或文件夹的修改、创建或上次访问的时间戳。

例如,在撰写有关文件夹比较和同步的文章时,我不得不更改某些文件的时间戳来测试 Robocopy 同步方法。其他用户可能需要更改文件的日期或时间以进行备份或归档。

让我们看看一些方法来更改本文中文件的创建日期、修改日期或上次访问日期。

更改文件或文件夹时间戳

更改文件创建、上次访问或修改日期

使用 PowerShell

要使用 PowerShell 更改文件日期,您需要运行以下命令:

更改名为 log1.txt 的文件的创建日期/时间戳:

(Get-Item "D:\Test\log1.txt").CreationTime=("3 August 2019 17:00:00")

更改名为 log1.txt 的文件的最后写入日期/时间戳:

(Get-Item "D:\Test\log1.txt").LastWriteTime=("3 August 2019 17:10:00")

更改名为 log1.txt 的文件的最后访问日期/时间戳:

(Get-Item "D:\Test\log1.txt").LastAccessTime=("3 August 2019 17:10:00")

更改名为 Test 的文件夹中所有文件的日期/时间戳:

要更改文件夹中所有文件的时间戳,请使用以下语法:

Get-ChildItem -force d:\test\ * | ForEach-Object{$_.CreationTime = ("3 August 2019 17:00:00")}
Get-ChildItem -force d:\test\ * | ForEach-Object{$_.LastWriteTime = ("3 August 2019 17:10:00")}
Get-ChildItem -force d:\test\ * | ForEach-Object{$_.LastAccessTime = ("3 August 2019 17:10:00")}

请注意,上述命令会更改文件夹中每个文件和子文件夹的时间戳。要仅对文件应用更改(即排除子文件夹),请使用以下语法:

Get-ChildItem -force d:\test\ * | Where-Object {! $_.PSIsContainer} | ForEach-Object{$_.CreationTime = ("3 August 2019 17:00:00")}
Get-ChildItem -force d:\test\ * | Where-Object {! $_.PSIsContainer} | ForEach-Object{$_.LastWriteTime = ("3 August 2019 17:10:00")}
Get-ChildItem -force d:\test\ * | Where-Object {! $_.PSIsContainer} | ForEach-Object{$_.LastAccessTime = ("3 August 2019 17:10:00")}

更改“文件夹”的最后写入日期/时间戳

(Get-Item "D:\Test\").LastWriteTime=("3 August 2019 17:00:00")

查看文件夹中所有文件的创建、修改和上次访问日期

要查看文件夹中所有文件的修改日期、创建日期和上次写入日期数据,请使用以下命令行语法:

Get-ChildItem -force "D:\Test\"  | Select-Object Name, CreationTime, LastWriteTime, LastAccessTime

(或者)

foreach ($objFile in Get-ChildItem "D:\Test\*.*") { '"' + $objFile.Name + '" | ' + $objFile.CreationTime + ' | ' + $objFile.LastWriteTime + ' | ' + $objFile.LastAccessTime}

你会看到这样的输出:

"log1.txt" | 08/03/2019 17:00:00 | 08/03/2019 17:10:00 | 08/03/2019 17:10:00
"log2.txt" | 08/03/2019 17:00:00 | 08/03/2019 17:10:00 | 08/03/2019 17:10:00
"log3.txt" | 08/03/2019 17:00:00 | 08/03/2019 17:10:00 | 08/03/2019 17:10:00
"log4.txt" | 08/03/2019 17:00:00 | 08/03/2019 17:10:00 | 08/03/2019 17:10:00


使用 Nirsoft 的 NirCmd

使用来自 Nirsoft.net 的多功能命令行工具 NirCmd,您可以更改文件日期和时间戳

这是使用 NirCmd 更改文件时间戳的命令行语法:

nircmd.exe setfiletime [filename or wildcard] [Created Date] {Modified Date} {Accessed Date}
 
 
  • 第一个参数可以是单个文件名或通配符字符串。
  • 日期参数必须按以下格式指定:“ dd-mm-yyyy hh:mm:ss”。
  • 如果未指定日期参数或指定空字符串 (“”),则日期不会更改。
  • 如果您指定"now"为日期参数,则将使用当前日期和时间。

例子

nircmd.exe setfiletime "d:\test\log1.txt" "03/08/2019 17:00:00" "" "03/08/2019 17:10:00"
nircmd.exe setfiletime "d:\test\log2.txt" now now now
nircmd.exe setfiletime "d:\test\log3.txt" now "" now
nircmd.exe setfiletime "d:\test\log4.txt" "03/08/2019 17:00:00" "03/08/2019 17:10:00" now

要更改文件夹中所有文本文件的时间戳,以下是命令行语法:

nircmd.exe setfiletime "d:\test\*.txt" "03/08/2019 17:00:00" "03/08/2019 17:10:00" "03/08/2019 17:10:00"

使用 Nirsoft 的 BulkFileChanger

BulkFileChanger是 Nirsoft.net 的另一个有用工具,可以修改一个或多个文件的创建、修改或访问时间。它还可以批量更改文件属性(只读、隐藏、系统

启动 BulkFileChanger 并将文件添加到其中。将文件添加到列表时,您可以选择在子文件夹中添加文件并相应地设置递归级别。

选择所有文件,然后单击操作菜单中的更改时间/属性。

您可能需要先取消选中在 GMT 中指定的时间,因为我们大多数人更喜欢输入本地时间而不是 GMT。

输入创建、修改或访问的日期/时间。要在所有字段中填写当前时间,请单击下面的“填写当前时间”按钮。

对于从相机拍摄的图像,EXIF 或元数据字段包含拍摄日期字段,该字段与 NTFS 的日期修改/创建数据分开。您可以从 JPG 文件的属性或使用来自 Nirsoft.net 的ExifDataView实用程序查看 EXIF 数据。

也就是说,BulkFileChanger 还允许您更改拍摄日期时间戳(EXIF 元数据)。要更改日期元数据,请单击“无更改”按钮,然后选择适当的选项。

EXIF – Generated Time对应于 Date Taken 元数据,该字段显示在 File Explorer 的Date下。此外,许多程序将此值用作图片的官方日期/时间。

请注意,仅当日期/时间值已存在于 .jpg 文件中时,您才能更改相机图像的 EXIF 日期。BulkFileChanger 无法将新字段添加到 EXIF 数据中。

并且,您还可以选择从修改、创建、访问、退出 - 生成时间、退出 - 存储时间或退出 - 修改时间复制时间戳,并将其自动应用于其他日期字段。

命令行支持

BulkFileChanger 还支持命令行操作,因此您不必每次都打开 GUI。查看BulkFileChanger主页以获取命令行帮助/支持的参数列表。


属性更改器

Attribute Changer 是一个出色的免费软件程序,它可以执行以下操作:

  • 修改文件属性。
  • 将文件或文件扩展名或文件夹名称更改为大写、小写或大写。
  • 操作文件和文件夹的日期和时间。
  • 修改存储在数码照片中的日期和时间信息。您可以添加或减去值,甚至可以与文件日期和时间同步。
  • 根据多个条件(例如属性、日期、时间、大小以及文件或文件夹名称通配符)排除或包含对象。
  • 模拟模式的特点是在应用之前在详细报告窗口中预览所有修改。这是一个安全的选择,您可以使用它进行试运行。

您可以从以下位置下载属性更改器https://www.petges.lu/

安装程序后,您需要做的就是选择一个文件或文件夹或多个项目,然后选择更改属性上下文菜单条目。

更改所选文件和/或文件夹的日期和时间戳。如果您要使用高级(过滤器)操作,最好先在模拟模式下运行它,以确保结果完美。

Attribute Changer 还将操作(每个文件和文件夹修改)记录到一个制表符分隔的文本文件中,该文件可以导入 Excel。

猜你喜欢

转载自blog.csdn.net/allway2/article/details/126157034