chrisr
Goto Top

Batchdatei zum Kopieren von Dateien ab einer bestimmten Größe

Hallo,

leider komme ich bei einer Batchdatei nicht weiter: Aufgabe ist es, alle Dateien ab einer bestimmten Dateigröße (10 MB) aus einem Verzeichnis in ein anderes Verzeichnis zu verlagern. Move klappt prima,aber ich bekomme den Filter für die Dateigröße nicht hin.

Herzlichen Dank für Eure Bemühungen!

Christian

Content-Key: 211849

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

Printed on: April 27, 2024 at 08:04 o'clock

Member: Biber
Biber Jul 18, 2013 updated at 13:49:48 (UTC)
Goto Top
Moin ChrisR,

die Größe einer Datei kannst du mit einer abgeleiteten FOR-Laufvariablen ermitteln.

Beispiel am CMD-Prompt: nur die erste Zeile ab ">" wird eingegeben
C:\Users\Biber>for %i in ("F:\schnipsel\*.*") do @if %~zi GTR 500000 echo [%i]: %~zi
[F:\schnipsel\systeminfo.txt]: 814898

-> die von %i abgeleitete Laufvariable %~zi enthält die Dateigrösse, im Beispiel die 814898 Byte.
-> und statt "IF...GTR ...echo .. " wäre es bei dir "IF ... GTR...move..."

Grüße
Biber
Member: MrNetman
MrNetman Jul 18, 2013 at 14:01:00 (UTC)
Goto Top
Hi Chris,

Es ist immer hilfreich zu sehen, wie weit du gekommen bist.
Ein paar Zeilen wenigstens als Listing

Gruß
Netman
Member: ChrisR
ChrisR Jul 18, 2013 at 15:17:27 (UTC)
Goto Top
Danke für Eure Hilfe, werde es demnächst ausprobieren und mich melden!
Member: ChrisR
ChrisR Jul 18, 2013 at 15:33:34 (UTC)
Goto Top
hmmm... "echo" klappt gut, aber mit "move" geht das bei mir noch nicht (Kommandozeile) -
for %i in (D:\test\quelle\*.*) do @if %~zi GTR 500000 move /Y [%i]: %~zi D:\test\quelle D:\test\ziel

und so auch nicht:
for %i in (D:\test\quelle\*.*) do @if %~zi GTR 500000 move /Y D:\test\quelle\[%i]: %~zi D:\test\ziel

Was mache ich nun falsch?

Grüße,
Chris
Member: Endoro
Endoro Jul 18, 2013 updated at 16:02:43 (UTC)
Goto Top
Hallo,

so geht es:

for %i in (D:\test\quelle\*.*) do if %~zi GTR 500000 move /Y "%~fi" "D:\test\ziel"  

lg
Member: bastla
bastla Jul 18, 2013 updated at 16:27:23 (UTC)
Goto Top
... und falls einmal ein Batch daraus wird, kann zum Ausgleich für die zu verdoppelnden Prozentzeichen der Schalter "/Y" bei "move" entfallen ...

Grüße
bastla
Member: ChrisR
ChrisR Jul 19, 2013 at 07:58:41 (UTC)
Goto Top
Klappt prima (auch im Batch).

Herzlichen Dank und beste Grüße,
Christian
Member: gr4v3l
gr4v3l Jul 23, 2013 at 22:03:00 (UTC)
Goto Top
Versuchs sonst auch mal mit robocopy/MAX:n oder so..
einfach bei cmd robocopy/? eingeben
bisschen spät aber vielleicht brauchst du´s ja mal
lg gr4v3l