Найти .jpg в 2 разных папках с одинаковым именем и той же LastWriteDate - PullRequest
0 голосов
/ 27 марта 2019

У меня есть много 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}

1 Ответ

0 голосов
/ 28 марта 2019

Без рекурсии вы можете сравнить файлы папок с 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

Если требуется рекурсия и необходимо сравнивать подпапку, вам также нужно построить вычисляемое свойство с относительным путем, который будет сопоставим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...