Bitte sehen Sie sich das folgende Powershell-Skript an.
Ich habe dies nur mit txt-Dateien getestet, sollte jedoch mit jeder Datei funktionieren, vorausgesetzt, die Dateigröße / -länge ist lesbar.
$Source = "C:\Test" $Comparison = "C:\Test2" $SourceFiles = Get-ChildItem -File -Path $Source | Select * $ComparisonFiles = Get-ChildItem -File -Path $Comparison | Select * Foreach ($File in $SourceFiles){ Write-Host "Checking for" $File.Name Foreach ($CFile in $ComparisonFiles){ if ($File.length -eq $CFile.length){ Write-host $File.fullname "Matches `n" $CFile.fullname Rename-Item -Path $File.FullName -NewName $CFile.Name -WhatIf Write-Host "`n" } } }
Ändern Sie den Pfad von $ Source und $ Comparison in die entsprechenden Verzeichnisse. Dies ist derzeit sicher ausgeführt und nimmt zunächst keine Änderungen vor. Sobald Sie es ausgeführt haben und mit den Ergebnissen zufrieden sind, können Sie "-Whatif" aus der Umbenennungsfunktion entfernen. Dadurch werden die beim ersten Ausführen angegebenen Änderungen vorgenommen.
Dies ist ein sehr schnelles Beispiel, bei dem nicht berücksichtigt wird, wie mehrere Dateien mit der gleichen Größe behandelt werden sollen (möglicherweise doppelte Dateien usw.). Dies gilt nur für das übergeordnete Verzeichnis und nicht für rekursiv.