【问题标题】:PowerShell Move-Item Folder Time StampPowerShell 移动项目文件夹时间戳
【发布时间】:2016-01-22 16:50:47
【问题描述】:

我正在使用 PowerShell Move-Item 移动一些文件夹及其所有内容,但是当我移动文件夹时,其修改日期是当前日期而不是原始日期。如何在不更改上次修改日期的情况下移动文件夹。

【问题讨论】:

  • 是什么引起了这个问题?这是子目录的标准行为。

标签: powershell


【解决方案1】:

这是一个 powershell 函数,它可以满足您的要求...它绝对不会进行完整性检查,所以请谨慎购买...

function Move-FileWithTimestamp {
[cmdletbinding()]
param(
    [Parameter(Mandatory=$true,Position=0)][string]$Path,
    [Parameter(Mandatory=$true,Position=1)][string]$Destination
)

    $origLastAccessTime = ( Get-Item $Path ).LastAccessTime
    $fileName = ( Get-Item $Path ).Name
    Move-Item -Path $Path -Destination $Destination
    $(Get-Item ($Destination+'\'+$fileName)).LastAccessTime = $origLastAccessTime
}

运行加载后,您可以执行以下操作:

Move-FileWithTimestamp c:\foo.txt c:\newFolder

【讨论】:

    【解决方案2】:

    在 Windows 中没有简单的方法可以做到这一点,但您可以使用 robocopy。有一个选项可以复制修改后的日期属性。 在 robocopy (robocopy /?) 上运行帮助并查找 /COPY 和 /COPYALL 选项。 这仅适用于 Vista 和更新的 Windows 版本。

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多