我刚刚将所有文件夹/文件从旧硬盘移至新硬盘。新硬盘上的文件保留了其创建日期,但文件夹的创建日期现在为今天。有人能给我写一个脚本吗,将旧硬盘上旧文件夹的创建日期复制并重写到新硬盘上新文件夹中。
到目前为止,我发现可以逐一写下新的日期:
(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
}
}