[ANLEITUNG] Doppelte Dateien mit PowerShell finden und löschen

In diesem Artikel erfahren Sie, wie Sie mit PowerShell doppelte Dateien finden und löschen können. Außerdem stellen wir Ihnen ein benutzerfreundlicheres Tool vor, das auf einfache und absolut sichere Weise nach doppelten Dateien sucht und diese entfernt.

Elena

Von Elena / Aktualisiert am 07.12.2023

Teilen: instagram reddit

Kann ich mit PowerShell doppelten Dateien finden?

Als Befehlszeilenshell und Skriptsprache wurde PowerShell entwickelt, um administrative Aktivitäten zu automatisieren, Systemkonfigurationen zu warten und verschiedene systembezogene Prozeduren effektiv zu handhaben. Es basiert auf dem .NET Framework, wodurch es Zugriff auf eine Vielzahl von Systemfunktionen und -bibliotheken hat und damit ein unverzichtbares Werkzeug für eine breite Palette von Benutzern ist.

Eine der herausragenden Funktionen von PowerShell ist seine Fähigkeit zur Interaktion mit dem Windows-Betriebssystem, Diensten und Anwendungen über Befehle. Diese Befehle sind darauf ausgelegt, einfach zu verwenden zu sein und einer konsistenten Namenskonvention zu folgen, was es leichter macht, sie effektiv zu entdecken und zu nutzen.

PowerShell

Die Vielseitigkeit und Erweiterbarkeit von PowerShell machen es zu einem unschätzbaren Werkzeug, um doppelte Dateien auf einem Windows-PC zu finden und zu entfernen. Sie können Ihr System durchsuchen, doppelte Dateien anhand verschiedener Kriterien wie Inhalt, Name oder Größe finden und sie mit speziellen Befehlen und Skripten sicher löschen, um wertvollen Festplattenspeicher freizugeben.

Wie kann ich mit PowerShell doppelte Dateien finden und löschen?

In diesem Teil werden wir eine schrittweise Anleitung geben, wie Sie PowerShell verwenden können, um doppelte Dateien zu finden und zu entfernen, und das Skript demonstrieren, um dieses Ziel zu erreichen. 

Warnung: Bevor wir jedoch beginnen, müssen Sie wissen, dass es das Risiko gibt, dass Sie Daten verlieren oder auf andere unumkehrbare Konsequenzen stoßen könnten, wenn Sie die falschen Befehle eingeben. Stellen Sie also sicher, dass Sie die richtigen Befehle verstehen und eingeben.

Teil 1. Doppelte Dateien finden mit PowerShell

Der Befehl Get-FileHash in PowerShell dient der Datei-Checksumme. Dieser Hash kann verwendet werden, um eine Datei eindeutig zu identifizieren. Wir werden den Hash-Wert nutzen, um in diesem Beitrag doppelte Dateien zu identifizieren. Die Syntax des Befehls lautet wie folgt:

Get-FileHash -Path file_path -Algorithm hashing_algorithm

Sie müssen einen bestimmten Speicherpfad der Dateien eingeben, die Sie durchsuchen möchten. Zum Beispiel:

Get-FileHash -Path 'D:\ISO\WinPE.iso' -Algorithm SHA512

Doppelte Dateien finden

Wenn keine Hashing-Methode angegeben wird, ist der Standardwert SHA256, der in den meisten Fällen ausreichend ist. Der Hash wird zur Überprüfung der Dateiintegrität verwendet, insbesondere beim Herunterladen von Daten aus dem Internet.

Get-FileHash unterstützt die Pipeline-Eingabe, sodass wir es in Verbindung mit dem Befehl Get-ChildItem verwenden können, um den Hash jedes von Get-ChildItem bereitgestellten Elements zu berechnen.

Nun können wir Duplikate mit PowerShell finden.

▶ Option 1. Doppelte Dateien anhand des Hash-Werts finden

Der folgende Befehl ruft rekursiv alle Dateien in einem Ordner ab, gibt sie an Get-FileHash weiter, um ihren Hash zu generieren und gruppiert sie dann anhand übereinstimmender Hash-Werte. Sie müssen den Pfad basierend auf dem Ergebnis des Get-FileHash-Befehls entsprechend Ihrer Situation anpassen.

$srcDir = "D:\MyScripts" (Hier Pfad entsprechend Ihrer Situation ändern)

Get-ChildItem $srcDir -File -Recurse `

    | Get-FileHash | Group -Property Hash `

    | where {$_.Count -gt 1} | foreach { $_.Group | select Path, Hash}

Doppelte Dateien mit PowerShell finden

Beachten Sie, dass dieser Befehl mit kleinen Dateien am besten funktioniert. Wenn das Quellverzeichnis eine große Anzahl großer Dateien zum Löschen enthält, können Schwierigkeiten auftreten.

Die Hash-Berechnung ist ein zeitaufwändiger Vorgang, und das oben genannte Programm führt sie für jede Datei durch, unabhängig von deren Größe. Bei der Verwendung gegen ein Verzeichnis mit einer großen Anzahl von Dateien dauert es eine Ewigkeit, um Duplikate zu finden.

▶ Option 2. Doppelte Dateien anhand von Länge und Hash finden

Im Vergleich zu dem oben genannten Befehl ist die Suche nach doppelten Dateien anhand von Länge und Hash optimierter.

Die Dateien müssen in ihrer Größe übereinstimmen, um Duplikate zu sein, das heißt, Dateien unterschiedlicher Größe können keine Duplikate sein. Sie sind sicherlich vertraut mit der Eigenschaft „Length“ des PowerShell-Befehls Get-ChildItem. Es ist keine Berechnung erforderlich, da der Wert „Length“ aus dem Verzeichnis entnommen wird.

Der Trick besteht darin, Hashes nur für Dateien mit derselben Länge zu berechnen, da wir bereits wissen, dass Dateien unterschiedlicher Länge keine Duplikate sein können. Dadurch wird die Gesamtzeit des Befehls erheblich reduziert. Sie müssen den Pfad basierend auf dem Ergebnis des Get-FileHash-Befehls entsprechend Ihrer Situation anpassen.

$srcDir = "D:\ISO Files" (Hier Pfad entsprechend Ihrer Situation ändern)

Get-ChildItem -Path $srcDir -File -Recurse | Group -Property Length `

    | where { $_.Count -gt 1 } | select -ExpandProperty Group | Get-FileHash `

    | Group -Property Hash | where { $_.count -gt 1 }| foreach { $_.Group | select Path, Hash }

PowerShell

Sie sehen diesen Befehl, der Dateien gleicher Größe gruppiert und diese Dateien dann an Get-FileHash sendet, um ihren Hash zu bestimmen.

Teil 2. Doppelte Dateien löschen mit PowerShell

Nachdem wir mit PowerShell doppelte Dateien gefunden haben, sollten wir entsprechend damit umgehen. Es ist nicht ratsam, Duplikate sofort zu löschen, während Sie mit wichtigen Dateien arbeiten. Stattdessen können Sie sie in ein anderes Verzeichnis verschieben, wahrscheinlich auf eine separate Festplatte mit ausreichend freiem Speicherplatz.

Mit unserem neuen Befehl ist dies einfach. Geben Sie einfach die Ausgabe der oben genannten Operation an den Befehl Move-Item.

# Define source directory

$srcDir = "D:\ISO Files"  (Hier Pfad entsprechend Ihrer Situation ändern)

# Define destination directory

$targetDir = "E:\DuplicateFiles\$(Get-Date -Format 'yyyyMMdd')" (Hier werden diese Zieldateien gespeichert)

# Create destination directory

if(!(Test-Path -PathType Container $targetDir)){ New-Item -ItemType Directory -Path $targetDir | Out-Null }

# Move duplicate files to a different location

Get-ChildItem -Path $srcDir -File -Recurse | group -Property Length | where { $_.Count -gt 1 } `

        | select -ExpandProperty Group | Get-FileHash | group -Property Hash `

        | where { $_.Count -gt 1 }| foreach { $_.Group | select -Skip 1 } `

        | Move-Item -Destination $targetDir -Force -Verbose

Doppelte Dateien mit PowerShell löschen

Der Punkt, den Sie beachten sollten, ist, dass wir -Skip 1 verwendet haben, um eine Datei im Quellverzeichnis zu belassen und andere Duplikate in das angegebene Zielverzeichnis zu verschieben. Sobald sie verschoben sind, können Sie sie später manuell überprüfen und bei Bedarf entfernen. Wenn Sie mit einem großen Quellverzeichnis mit Millionen von Dateien arbeiten, ist es ratsam, den Parameter -verbose bei Move-Item nicht zu verwenden.

Wenn sich in Ihrem Verzeichnis nur wenige Dateien befinden, möchten Sie möglicherweise manuell auswählen, welche verschoben werden sollen und welche im Quellverzeichnis verbleiben sollen:

# Define source directory

$srcDir = "D:\ISO Files"

# Define destination directory

$targetDir = "E:\DuplicateFiles\$(Get-Date -Format 'yyyyMMdd')"

# Create destination directory

if(!(Test-Path -PathType Container $targetDir)){ New-Item -ItemType Directory -Path $targetDir | Out-Null }

# Manually choose duplicate files to move to target directory

Get-ChildItem -Path $srcDir -File -Recurse | Group -Property Length `

    | where { $_.Count -gt 1 } | select -ExpandProperty Group | Get-FileHash `

    | Group -Property Hash | where { $_.count -gt 1 } | foreach { $_.Group | select Path, Hash } `

    | Out-GridView -Title "Select the file(s) to move to `"$targetDir`" directory." -PassThru `

    | Move-Item -Destination $targetDir -Force -Verbose

Doppelte Dateien löschen

Wenn Sie Ihre Dateien gesichert haben, können Sie die doppelten Dateien auch direkt mit PowerShell verschieben:

# Define source directory

$srcDir = "D:\ISO Files"

# Permanently delete duplicate files; use with caution

Get-ChildItem -Path $srcDir -File -Recurse | group -Property Length | where { $_.Count -gt 1 } `

        | select -ExpandProperty Group | Get-FileHash | group -Property Hash `

        | where { $_.Count -gt 1 }| foreach { $_.Group | select -Skip 1 } `

        | Remove-Item -Force -Verbose

PowerShell

Alternative zu PowerShell: Doppelte Dateien einfach finden und löschen

Während PowerShell für das Auffinden und Löschen von doppelten Dateien verwendet werden kann, können seine Befehle ziemlich komplex und riskant sein. Ein einziger Fehler während des Vorgangs kann potenziell das Verzeichnis Ihrer Dateien beschädigen.

In solchen Fällen wird ein benutzerfreundlicher Sucher für doppelte Dateien zu einem unverzichtbaren Werkzeug. Hier empfehlen wir die Verwendung von AOMEI Partition Assistant Professional, einem vielseitigen Dienstprogramm für die Verwaltung von Festplatten und Partitionen, das mit allen Windows-PCs kompatibel ist.

Mit der Funktion „Doppelte Dateien finden“ bietet es Benutzern eine schnelle und effiziente Lösung. Es führt Scans durch, um doppelte Dateien (einschließlich Bilder, Videos, Audio, Dokumente und Archive) zu finden und ermöglicht Benutzern die Einrichtung automatisierter Reinigungsprozesse für ihre Geräte, ohne komplexe Befehle verwenden zu müssen.

Kostenloser Download Win 11/10/8.1/8/7/XP
Sicherer Download
Hinweis: Wenn Sie doppelte Dateien auf einem Windows Server oder für den Unternehmenseinsatz bereinigen möchten, können Sie die Server-Edition und andere erweiterte Editionen auswählen.

Schritt 1: Installieren und starten Sie dieses Tool, wählen Sie den Tab Freigeben in der oberen Menüleiste und wählen Sie Doppelte Dateien finden.

Doppelte Dateien finden

Schritt 2: Begrenzen Sie im neuen Fenster den Scanbereich und die Dateitypen. Klicken Sie dann auf Scannen. Wenn Sie Erweiterte Einstellungen wählen, können Sie weitere Details für die Dateien festlegen, wie z.B. die Größe, Vergleichsmethoden, Dateischutz-Einstellungen und Dateidaten. Sobald Sie Ihre Einstellungen abgeschlossen haben, klicken Sie auf Scannen, um den Scan zu starten.

Scannen

Schritt 3: Während des Scans können Sie die Dateinummern, die verbrauchte Zeit und die verbleibende Zeit sehen. Wenn Sie den Prozess stoppen möchten, können Sie auf Scannen abbrechen klicken.

Scannen abbrechen

Schritt 4: Wenn der Scan abgeschlossen ist, können Sie die Ergebnisse sehen. Alle doppelten Dateien werden im Fenster angezeigt, und Sie können die Größe und die Zeit überprüfen, indem Sie auf Vorschau klicken. Klicken Sie auf Intelligent wählen, und das Programm wählt die richtigen Dateien zum Entfernen aus. Sie können auf Einstellungen klicken, um Ihre bevorzugten Einstellungen festzulegen.

Vorschau

Schritt 5: Nachdem Sie die Löschung bestätigt haben, startet das Tool den Entfernungsprozess.

Zusammenfassung

Dieser Artikel zeigt Ihnen, wie Sie mit PowerShell doppelte Dateien finden und löschen können. PowerShell ist zwar ein sehr nützliches Tool für Windows-Benutzer, um Systemeinstellungen zu ändern. Es erfordert jedoch ein hohes Maß an Computerkenntnissen von einem durchschnittlichen Benutzer.

Wir empfehlen Ihnen, AOMEI Partition Assistant Professional zu verwenden, um doppelte Dateien mit nur wenigen Klicks zu finden und zu löschen. Es verfügt außerdem über eine Datenwiederherstellungsfunktion, um Sie für den Fall der Fälle zu schützen. Und es kann Junk-Dateien bereinigen, installierte Apps verschieben, und Sie finden viele nützliche Funktionen zur Verbesserung der Leistung Ihres Computers.

Elena
Elena · Redakteur
Bevor sie zu AOMEI Technology kam, war sie bereits ein Fan von AOMEI. Als sie offiziell Mitglied dieser Firma wurde, widmete sie sich der Einarbeitung in die Produkte, der Bearbeitung von Artikeln zu den Themen Sichern, Wiederherstellen und Klonen und half Anwendern bei der Lösung vieler praktischer Probleme.