Czy zdarzyło Ci się kiedykolwiek, że znalazłeś dwa lub więcej plików o tej samej nazwie i zawartości w różnych miejscach na swoim komputerze? Zduplikowane pliki zajmują cenne miejsce na dysku twardym i mogą spowolnić jego działanie. Często trudno jest je znaleźć ręcznie, zwłaszcza gdy masz duży dysk i wiele plików.
Poniżej pokażę Ci skrypt, który automatycznie znajduje i usuwa zduplikowane pliki. Szukamy w tym skrypcie plików identycznych pod względem nazwy oraz rozmiaru pliku.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# Zdefiniuj folder, w którym skrypt ma szukać zduplikowanych plików $folder = 'C:\PSTesty' # Pobierz rekurencyjnie wszystkie pliki w folderze i podfolderach $files = Get-ChildItem $folder -Recurse | Where-Object {-not $_.PsIsContainer} # Zgrupuj pliki według nazwy i rozmiaru $groups = $files | Group-Object Name, Length # Przejdź przez każdą grupę i usuń zduplikowane pliki foreach ($group in $groups) { if ($group.Count -gt 1) { Write-Host "Usuwam zduplikowane pliki o nazwie $($group.Name) i rozmiarze $($group.Length)..." $group.Group | Select-Object -Skip 1 | Remove-Item -Force } } |
Poniżej przedstawię poszczególne kroki i wynik ich poleceń. Tutaj widzimy wylistowane pliki, które zostały znalezione w podanej przez nas ścieżce.
Teraz wykonujemy polecenie, które zgrupuje nam pliki o tej samej nazwie i rozmiarze.
A teraz informacja o usuwanych plikach.
Oczywiście, nie jest to zaawansowane narzędzie do usuwania duplikatów ale myślę, że ten post będzie dla kogoś inspiracją do stworzenia czegoś bardziej zaawansowanego 🙂