PowerShell移动项目文件夹时间戳

时间:2016-01-22 16:50:47

标签: powershell

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这里有一个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