脚本用于查找旧文件夹的创建日期并将其重写到新文件夹

脚本用于查找旧文件夹的创建日期并将其重写到新文件夹

我刚刚将所有文件夹/文件从旧硬盘移至新硬盘。新硬盘上的文件保留了其创建日期,但文件夹的创建日期现在为今天。有人能给我写一个脚本吗,将旧硬盘上旧文件夹的创建日期复制并重写到新硬盘上新文件夹中。

到目前为止,我发现可以逐一写下新的日期:

(Get-Item "Z:\www\new\folder\").LastWriteTime=("25 May 2021 00:00:00")

我有超过 500 个文件夹,所以我不想对每个文件夹都进行处理。

答案1

好的……所以我实际上找到了某人编写的脚本并去掉了一些东西,它就像魔法一样起作用了……

$src = "G:\source\folder\"
$dest = "Z:\destination\folder\"
$src = $src.Replace("\","\\")

$i = Get-ChildItem -Path $src -Recurse
$i | % {     ## -- All files and folders

    $apath = $_.FullName -Replace $src,""
    $cpath = $dest + $apath

    If (Test-Path $cpath)
       {
           Set-ItemProperty -Path $cpath -Name CreationTime -Value $_.CreationTime
           Set-ItemProperty -Path $cpath -Name LastWriteTime -Value $_.LastWriteTime
           Set-ItemProperty -Path $cpath -Name LastAccessTime -Value $_.LastAccessTime
       }
    }

$d = Get-ChildItem -Path $src -Recurse -Directory
$d | % {     ## -- Folders only

    $apath = $_.FullName -Replace $src,""
    $cpath = $dest + $apath

    If (Test-Path $cpath)
       {
           Set-ItemProperty -Path $cpath -Name CreationTime -Value $_.CreationTime
           Set-ItemProperty -Path $cpath -Name LastWriteTime -Value $_.LastWriteTime
           Set-ItemProperty -Path $cpath -Name LastAccessTime -Value $_.LastAccessTime
       }
    }

相关内容