如何在 Windows 中自动更新文件夹修改日期

如何在 Windows 中自动更新文件夹修改日期

在 Windows 中,有没有办法自动(或使用简单脚本)更新文件夹中任何文件的最新修改日期(递归)?

答案1

您可以在 PowerShell 中执行此操作。 类似于根据当前文件夹直接包含的文件来更新当前文件夹:

$lastModified = (dir . | ?{!$_.PSIsContainer} | sort LastWriteTime | select -last 1).LastWriteTime
$folder = get-item .
$folder.LastWriteTime = $lastModified

(如果文件夹中没有文件或者用户没有适当的权限,此操作将会失败。)

编辑:确保只找到一个文件(最后一个),以便排序管道具有单一结果。

答案2

我刚刚做了一个简单的测试 - 如果您在目录中创建一个空文件,它会将文件夹的修改日期更改为该时间。当您删除该文件时,这仍算作修改,因此它会保持当时的修改状态。

要以递归方式执行此操作,您必须在每个希望更改日期的文件夹中创建一个空文件。如果您愿意进行一些简单的编程,这仍然是一个相当简单的解决方案。

如果你想将日期更改为当前时间以外的其他时间,这个解决方案显然行不通。

答案3

您可以使用批量文件转换器

BulkFileChanger 是一个小型实用程序,它允许您从多个文件夹创建文件列表,然后对它们进行一些操作 - 修改它们的创建/修改/访问时间,更改它们的文件属性(只读,隐藏,系统),以这些文件作为参数运行可执行文件,以及复制/剪切粘贴到资源管理器中。

替代文本

答案4

不漂亮,但功能齐全。在 bash / cygwin 中完成

==================
find -maxdepth 1 -type d | grep -v "^\.$" | while read D ; do
  cd "$D"
  F=`ls -1tr | tail -1`
  cd ..
  touch -r "$D/$F" "$D"
done
==================

布赖恩

相关内容