Я пытаюсь сделать скрипт для поиска неуникальных файлов.
Скрипт должен взять один файл .csv с данными: имена файлов, LastWriteTime и Length.Затем я пытаюсь создать еще один .csv на основе этого, который будет содержать только те объекты, чья комбинация Name + Length + LastWriteTime не уникальна.
Я попробовал следующий скрипт, который использует $csvfile
, содержащий список файлов:
$csvdata = Import-Csv -Path $csvfile -Delimiter '|'
$csvdata |
Group-Object -Property Name, LastWriteTime, Length |
Where-Object -FilterScript { $_.Count -gt 1 } |
Select-Object -ExpandProperty Group -Unique |
Export-Csv $csvfile2 -Delimiter '|' -NoTypeInformation -Encoding Unicode
$csvfile
был создан:
{
Get-ChildItem -Path $mainFolderPath -Recurse -File |
Sort-Object $sortMode |
Select-Object Name, LastWriteTime, Length, Directory |
Export-Csv $csvfile -Delimiter '|' -NoTypeInformation -Encoding Unicode
}
(Get-Content $csvfile) |
ForEach-Object { $_ -replace '"' } |
Out-File $csvfile -Encoding Unicode
Но почему-то в другой $csvfile2
есть только одна (первая) неуникальная запись.У кого-нибудь есть идеи, как его улучшить, чтобы он мог перечислить все неуникальные записи?