Private/Get-DuplicateFiles.ps1
Function Get-DuplicateFiles($dir) { <# .DESCRIPTION Finds any duplicate files cross all sub-directories in the supplied directory. .PARAMETER dir The directory to find duplicate files in. .OUTPUTS An array of duplicate file names, or an empty array if no duplicates were found. #> $duplicates = @() $filenames = Get-ChildItem $dir -Recurse -File | Group-Object FullName | Select-Object Name | ForEach-Object {Split-Path $_.Name -leaf} $uniqueFilenames = $filenames | Select-Object -Unique if ($null -ne $uniqueFilenames) { $duplicates += Compare-Object -ReferenceObject $uniqueFilenames -DifferenceObject $filenames -PassThru } return $duplicates } |