-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dublicate.ps1
26 lines (24 loc) · 917 Bytes
/
Dublicate.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#Find path
$Path = "D:\_Development"
#Create Log
write-host "Duplicate files found"
$Output = "C:\temp\Log.csv"
#Add-Content $Output 'Original,Status,Duplicate'
$count = 0
$hash = @()
# Get all the files
$files = (Get-ChildItem $Path -Recurse | where {$_.Length -gt 0})
Foreach($file in $files) {
# work out the hash
$hash += get-filehash -Path $file.FullName
# Write-Progress -Activity "hashing" -status ($file.FullName) -PercentComplete (($count++ / $files.Count) * 100)
Write-Progress -Activity $files.Count -status ($file.FullName + " - " + ($count++ -as [string]))
}
# group the files
foreach($DuplicateFile in ($hash | Group-Object hash | where { $_.count -gt 1 })) {
# $Duplicates += $DuplicateFile.group | select Hash,Path
$Text = $DuplicateFile.group | select Hash,Path
Add-Content $Output $Text
# Add-Content $Output $DuplicateFile.group | select Hash,Path
}
# $Duplicates