africar
Goto Top

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

Content-Key: 77733

Url: https://administrator.de/contentid/77733

Printed on: April 18, 2024 at 15:04 o'clock

Member: Biber
Biber Jan 10, 2008 at 08:49:10 (UTC)
Goto Top
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:
>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]
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:
::------ 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
Member: africar
africar Jan 10, 2008 at 11:46:35 (UTC)
Goto Top
Hallo Biber,
vielen dank, das ging ja schnell.
Ich denke ich hab's verstanden, hatte (auch hier im Forum) bei der Suche wohl
zu sehr auf move und verschieben fokussiert.
Gruß
Africar
Member: Biber
Biber Jan 10, 2008 at 17:06:36 (UTC)
Goto Top
Moin Africar,

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
Member: africar
africar Jan 11, 2008 at 05:19:18 (UTC)
Goto Top
Moin Biber,
nochmals Thanks for caretaking.
Gruß
Africar