首页 > 解决方案 > 在具有相同名称和相同 LastWriteDate 的 2 个不同文件夹中查找 .jpg

问题描述

我在硬盘上有很多 jpg,它们是相同的图片。现在我想找到他们。因此我需要比较 2 个文件夹并找到相同的图片。
我想找到具有相同名称和相同 LastWriteTime 的图片。标准之一是不够的。所以,我需要一个可以做到这一点的 Powershell 代码。这是我所拥有的,但效果不佳。我也得到了不正确的结果。

这就是我尝试过的:

Get-ChildItem -Path $Pfad1 -Recurse -Filter *jpg |
    Where-Object {(Get-ChildItem -Path $Pfad2 -Recurse -Filter *jpg) -match $_.Name -and $_.LastWriteTime} | 
        ForEach-Object {$_.FullName}

标签: powershell

解决方案


无需递归,您可以将文件夹文件与Compare-Object

$Folder1 = 'X:\path'
$Folder2 = 'Y:\path'

$Files1 = Get-ChildItem -Path $Folder1 -Filter *.jpg
$Files2 = Get-ChildItem -Path $Folder2 -Filter *.jpg

Compare-Object -Ref $Files1 -Diff $Files2 -Property Name,LastWriteTime `
    -IncludeEqual -ExcludeDifferent -PassThru

如果需要递归并且必须比较子文件夹,您还必须构建一个具有可比较的相对路径的计算属性。


推荐阅读