Hallo Thomas, damit Du alles nachvollziehen kannst, hier eine ausführlichere Erklärung.
Die Ordnerstruktur kommt von Shopware.
Somit müssen die optimierten Bilder zwingend wieder am gleichen Platz überschrieben werden.
Die Suche inkl. aller Unterordner stellt kein Problem dar. Das macht freecommander und viele anderen Tools zuverlässig.
Ich suche alle Dateien die größer als 1MB sind. Danach exportiere ich diese Dateien in einen temporären Filecontainer um die Dateien im nächsten Schritt zu optimieren.
Auch wenn ich diese Dateien in den FileContainer vom freecommander verschiebe, so werden die Dateien vom ursprünglichen Verzeichnis nicht überschrieben. Die Dateien werden hinzugefügt mit einem anderen Speicherort.
Aus diesem Grund suche ich nach einem Lösungsansatz für folgende Funktion.
Suche den Dateinamen der zu überschreibenden Datei in allen Verzeichnissen und überschreibe die komplette Datei.
Die Suche soll im Media-Ordner beginnen.
Hier ein Beispiel für die Ordnerstruktur
media\image\f7\02\d4\originalbilder in jpg oder png
Vielleicht geht es auch mit PowerShell. Leider habe ich bei diesem Thema zu wenig Kenntnisse.
Dieses Skript hatte leider nicht funktioniert.
$sourceFolder = "C:\optimierte_bilder"
$destinationFolder = "C:\shopware\media"
Get-ChildItem -Path $sourceFolder -Recurse -Filter *.jpg, *.png | ForEach-Object {
$destinationPath = $_.FullName.Replace($sourceFolder, $destinationFolder)
Copy-Item $_.FullName $destinationPath -Force
}
Mit freundlichen Grüssen
Michael