设置文件LastWriteTime等于另一个文件的上次写入时间

时间:2017-09-08 20:09:39

标签: powershell

我在文件夹中有大约一年前处理过的700,000个文件,因此他们的LastWriteTimes全部来自/ mm / dd / 2016。由于更新了输出文件中的图像,我们不得不再次重新处理所有这些文件。这些文件位于两个单独的目录中,但文件名完全相同。

我的最终用户希望我更新所有新处理的文件,以将LastWriteTime更改为旧处理文件的内容。这是为了历史搜索目的。

我想使用Powershell扫描新文件夹($ dest)并更新新文件LastWriteTime以匹配旧文件LastWriteTime。我的powershell非常生疏,我已经陷入困境,无法接受它并希望得到一位大师的帮助。

这是我开始开发的代码块。

$src = "C:\Users\UserName\Desktop\old"
$dest = "C:\Users\UserName\Desktop\new"

Get-ChildItem -Path $src -Filter *.pdf -Recurse | ForEach-Object {

    $nextName = Join-Path -Path $dest -ChildPath $_.name

   if (Test-Path -LiteralPath $nextName) 
    {
       Set-Item $dest.LastWriteTime = $src.LastWriteTime 
    }

}

1 个答案:

答案 0 :(得分:1)

一旦递归到子文件夹,您的方法就无法工作 试试这个(未经测试的)

git reflog --since="2 days ago" --all