Dateien verschieben bzw. moven nach Kriterium Dateigröße
Synchronisierung von zwei Windows-Verzeichnissen nach Kriterium Dateigröße.
Nur die größere Datei bleibt erhalten.
Hallo,
auch nach längerer Suche ist es mir nicht gelungen, eine Batch zu finden, welche
Dateien zwischen Verzeichnissen verschiebt
und dabei die kleinere der Dateien überschreibt. Auch Tools wie robocopy geben das nach meiner
Recherche nicht her.
Man kann das Problem wohl auch als Syncronisierung nach maximalem Volumen umschreiben.
Ich wäre dankbar, wenn mir jemand eine Batch oder auch cygwin-Lösung (lauffähig unter WinXP) bereitstellen kann.
Hinzu kommt das Problem langer Dateinamen und Sonderzeichen, welches wohl auch eine Rolle spielen könnte.
Danke
Gruß
Hermann
Nur die größere Datei bleibt erhalten.
Hallo,
auch nach längerer Suche ist es mir nicht gelungen, eine Batch zu finden, welche
Dateien zwischen Verzeichnissen verschiebt
und dabei die kleinere der Dateien überschreibt. Auch Tools wie robocopy geben das nach meiner
Recherche nicht her.
Man kann das Problem wohl auch als Syncronisierung nach maximalem Volumen umschreiben.
Ich wäre dankbar, wenn mir jemand eine Batch oder auch cygwin-Lösung (lauffähig unter WinXP) bereitstellen kann.
Hinzu kommt das Problem langer Dateinamen und Sonderzeichen, welches wohl auch eine Rolle spielen könnte.
Danke
Gruß
Hermann
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 77733
Url: https://administrator.de/forum/dateien-verschieben-bzw-moven-nach-kriterium-dateigroesse-77733.html
Ausgedruckt am: 30.04.2025 um 13:04 Uhr
4 Kommentare
Neuester Kommentar
Moin africar,
willkommen im Forum.
Diese Anforderung sollte mit einer Zeile vom CMD-Prompt zu lösen sein.
Im Prinzip brauchst Du nur zwei FOR-Anweisungen nacheinander laufen lassen - eine über die Dateien des Quellverzeichnisses und eine über die des Ziels.
Demo am CMD-Prompt:
Dieses Beispiel würde über Dateien "mod*.*" der Quelle "d:\temp\" laufen und die gefundenen Dateien mit gleichnamigen im Ziel "d:\temp\eins\" vergleichen.
Angezeigt werden dann Dateiname, Größe in Quelle, Größe der Datei im Zielverzeichnis.
Wenn Du die Zeile 2x gelesen und 1x verstanden hast, dann wäre eine allgemeinere Fassung in einem Batch in etwa:
P.S. Wo hast Du denn gesucht...... wer außer unserem Forum sollte denn Antworten haben? *gg
Grüße
Biber
willkommen im Forum.
Diese Anforderung sollte mit einer Zeile vom CMD-Prompt zu lösen sein.
Im Prinzip brauchst Du nur zwei FOR-Anweisungen nacheinander laufen lassen - eine über die Dateien des Quellverzeichnisses und eine über die des Ziels.
Demo am CMD-Prompt:
>for %i in (d:\temp\mod*.*) do @for %j in ("d:\temp\eins\%~nxi?") do @echo [%~ni][%~zi][%~zj]
[modules][4560][4560]
[Modules_1][116][116]
[Modules_2][116][116]
[Modules_3][116][116]
Angezeigt werden dann Dateiname, Größe in Quelle, Größe der Datei im Zielverzeichnis.
Wenn Du die Zeile 2x gelesen und 1x verstanden hast, dann wäre eine allgemeinere Fassung in einem Batch in etwa:
::------ snipp CopyIfGTR.cmd
@echo off & setlocal
Set "Q=D:\temp"
Set "Z=D:\temp\eins"
FOR %%i in ("%q%\*.*") do for %%j in ("%Z%\%%~nxi?") do (
IF %%~zi GTR %%~zj Copy /y "%%i" "%%j"
)
P.S. Wo hast Du denn gesucht...... wer außer unserem Forum sollte denn Antworten haben? *gg
Grüße
Biber
Moin Africar,
okay, das Detail mit dem "Verschieben" wiederum habe ich überlesen... sorry.
In diesem Fall die Zeile...
Aber da bist Du bestimmt schon selbst darauf gekommen...
Wenn Du noch einen "Erledigt"-Haken setzt, schließe den Beitrag dann gelegentlich.
Grüße
Biber
okay, das Detail mit dem "Verschieben" wiederum habe ich überlesen... sorry.
In diesem Fall die Zeile...
IF %%~zi GTR %%~zj Copy /y "%%i" "%%j"
...ersetzen durch...IF %%~zi GTR %%~zj Move "%%i" "%%j"
Aber da bist Du bestimmt schon selbst darauf gekommen...
Wenn Du noch einen "Erledigt"-Haken setzt, schließe den Beitrag dann gelegentlich.
Grüße
Biber