Kopieren von Ordnern und größter Datei per Batch
Hallo,
ich habe folgendes Problem:
über die Jahre habe ich meine komplette DVD Sammlung als Sicherheitskopie auf Festplatte gesichert. Jeder Film ist ein Ordner. Als Komplettsicherung der einzelnen DVD sind auch jede Menge unwichtiger Dateien mit in der Sicherung gelandet, wie z.B. Trailer und Making-of.
Jetzt möchte ich meine Sammlung (knapp 2500 Filme) auf einen Medienserver bringen, dabei stört in der Menge natürlich jede einzelne Datei zuviel.
Ich suche daher eine Batch, mit der ich die Filmordner mitsamt nur ihrer jeweils größten enthaltenen Datei (dem eigentlichen Film) von A nach B kopieren kann.
Dabei sollen die Originalordner mitsamt allen Dateien (unter A) erhalten bleiben
Könnte mir dabei bitte mal jemand zur Hand gehen und helfen?
Liebe Grüße,
Schnittel
ich habe folgendes Problem:
über die Jahre habe ich meine komplette DVD Sammlung als Sicherheitskopie auf Festplatte gesichert. Jeder Film ist ein Ordner. Als Komplettsicherung der einzelnen DVD sind auch jede Menge unwichtiger Dateien mit in der Sicherung gelandet, wie z.B. Trailer und Making-of.
Jetzt möchte ich meine Sammlung (knapp 2500 Filme) auf einen Medienserver bringen, dabei stört in der Menge natürlich jede einzelne Datei zuviel.
Ich suche daher eine Batch, mit der ich die Filmordner mitsamt nur ihrer jeweils größten enthaltenen Datei (dem eigentlichen Film) von A nach B kopieren kann.
Dabei sollen die Originalordner mitsamt allen Dateien (unter A) erhalten bleiben
Könnte mir dabei bitte mal jemand zur Hand gehen und helfen?
Liebe Grüße,
Schnittel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3707815550
Url: https://administrator.de/forum/kopieren-von-ordnern-und-groesster-datei-per-batch-3707815550.html
Ausgedruckt am: 22.04.2025 um 19:04 Uhr
8 Kommentare
Neuester Kommentar

@echo off &setlocal enabledelayedexpansion
set "quelle=d:\filme"
set "ziel=f:\filme"
for /d %%a in ("%quelle%\*") do (
md "%ziel%\%%~nxa" >nul 2>&1
set "big="
for /f "delims=" %%b in ('dir /b /a-d /os "%%a"') do set "big=%%b"
if defined big copy "%%a\!big!" "%ziel%\%%~nxa\"
)
https://docs.microsoft.com/de-de/windows-server/administration/windows-c ...

Zeile -1- "&" und "setlocal" voneinander getrennt,
Überflüssig, geht beides.Zeile -5- ein fehlendes -'- in "%%a"') ergänzt. Stimmt das so?
Ja, vergessen, sorryLüppt hier so einwandfrei. Wir kennen leider deine Ordnerstruktur nicht, da du diese nicht weiter spezifiziert hast. Obiges verarbeitet nur Dateien die direkt unterhalb der Unterordner liegen, keine weiteren Subordner, wenn du das willst muss es weiter angepasst werden (per dir /s).
@echo off &setlocal enabledelayedexpansion
set "quelle=d:\filme"
set "ziel=f:\filme"
for /d %%a in ("%quelle%\*") do (
md "%ziel%\%%~nxa" >nul 2>&1
set "big="
for /f "delims=" %%b in ('dir /b /s /a-d /os "%%a"') do set "big=%%b"
if defined big copy "!big!" "%ziel%\%%~nxa\"
)

@echo off
set "quelle=%~dp0"
set "ziel=f:\ziel"
powershell -Executionpolicy Bypass -Command "Get-ChildItem '%quelle%' -Directory -PipelineVariable f | foreach{Get-ChildItem $_.Fullname -File -Recurse | sort Length -Descending | select -First 1 | copy-item -Destination {(md (join-path '%ziel%' $f.Name) -Force).Fullname} -verbose}"
pause