Gehen Sie folgendermaßen vor, um mit PowerShell doppelte Dateien zu finden:
1. Öffnen Sie Windows PowerShell als Administrator.
2. Navigieren Sie zu dem Ordner oder Verzeichnis, in dem Sie nach doppelten Dateien suchen möchten.
3. Führen Sie den folgenden Befehl aus:
„
Get-ChildItem -Recurse -Force | Group-Object -Eigenschaftsname, Länge -NoElement | Wobei {$PSObject.Count -gt 1}
„
4. Dieser Befehl durchsucht das aktuelle Verzeichnis und alle seine Unterverzeichnisse nach Dateien mit demselben Namen und derselben Größe. Der Parameter „-Recurse“ durchsucht alle Unterordner rekursiv und der Parameter „-Force“ zwingt den Befehl, versteckte Dateien und Ordner in die Suche einzubeziehen.
Der Befehl „Group-Object“ gruppiert die Dateien nach Name und Größe, und der Parameter „-NoElement“ stellt sicher, dass nur die Gruppenobjekte zurückgegeben werden, ohne die einzelnen Dateien innerhalb jeder Gruppe. Der Befehl „Where“ filtert dann die Ergebnisse, um nur Gruppen einzubeziehen, die mehr als eine Datei haben.
5. Die Ausgabe des Befehls ist eine Liste von Gruppen, die jeweils einen Satz doppelter Dateien darstellen. Die Gruppenobjekte enthalten die folgenden Eigenschaften:
- „Name“:Der Name der doppelten Dateien.
- „Anzahl“:Die Anzahl der Dateien in der Gruppe.
- „FullName“:Der vollständige Pfad zu den Dateien in der Gruppe.
Sie können die Eigenschaft „FullName“ verwenden, um auf die einzelnen Dateien in jeder Gruppe zuzugreifen. Der folgende Befehl würde beispielsweise alle doppelten Dateien im aktuellen Verzeichnis und allen seinen Unterverzeichnissen löschen:
„
Get-ChildItem -Recurse -Force | Group-Object -Property Name, Länge -NoElement | Wobei {$PSObject.Count -gt 1} |ForEach {Remove-Item $_.FullName -Recurse -confirm:$false}
„
Dieser Befehl fordert Sie auf, jeden Löschvorgang zu bestätigen. Wenn Sie die Dateien ohne Aufforderung löschen möchten, fügen Sie den Parameter „-Confirm:$false“ zum Befehl „Remove-Item“ hinzu.