LastModifiedDate 未更新

LastModifiedDate 未更新

我有一个 powershell 脚本,正在将九 (9) 个文件从源文件夹移动到目标文件夹。

文件移动后,我将更新每个文件的 LastWriteTime 为

$currentTime = Get-Date
(Get-Item "somefilename").LastWriteTime  = $currentTime.AddMinutes(1)
(Get-Item "someotherfilename").LastWriteTime  = $currentTime.AddMinutes(2)

脚本运行后,所有修改的时间都相同!而且,它们是当前时间。它们都没有更新到未来时间。可能是什么问题。

我以管理员身份运行了该脚本,问题依旧。当我将 LastWriteTim 打印到控制台时,它具有正确的值,但是当我查看文件属性时,它具有错误的值。

答案1

我对此并不完全确定,但当你对目标文件夹没有足够的访问权限时,我过去曾看到过类似的问题。

修改(又称读写)权限和完全控制权限之间存在差异。
在许多文件系统上,需要完全控制权限才能更改文件的时间属性(和访问权限属性)。
如果您只有“修改”权限,则可以创建/删除文件,但不能更改 LastWrite 时间戳等属性。这将在复制文件时自动设置,并且可能与“$currenttime”相同,可能相差几秒钟,具体取决于脚本中发生的具体情况以及需要多少时间。

答案2

我知道这是一篇旧帖子,但也许这对将来的某些人有帮助:

直接从文件夹对象设置 lastwritetime 和 lastaccesstime 的方法似乎有问题。请改用 System.IO.Directory 的 SetLastAccessTime 和/或 SetLastWriteTime 方法:

[System.IO.Directory]::SetLastAccessTime($DestinationFolderPath,$NewDate) [System.IO.Directory]::SetLastWriteTime($DestinationFolderPath,$NewDate)

相关内容