durchsteiger
Goto Top

Nur Dateien kleiner als 10MB per Batch kopieren

Hallo,

was für ein Text soll in einer Bat-Datei stehen, damit mehrere Ordner samt deren Dateien von A nach B so kopiert werden, dass nur Dateien kleiner als 10 MB kopiert werden.

Meine PC-Kenntnisse sind leider nur ausreichend. Ihr sollt euch bitte daher möglichst verständlich ausdrücken.

Ich erstelle eine Bat-Datei folgendermaßen: Ich erstelle eine neue Txt-Datei, deren Endung ich in .bat umbenenne.
Ist die Methode richtig?

Vielen Dank im voraus !

Content-Key: 72091

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

Printed on: April 19, 2024 at 05:04 o'clock

Member: paulepank
paulepank Oct 28, 2007 at 09:51:11 (UTC)
Goto Top
Hallo,

Ihr sollt euch bitte daher möglichst verständlich ausdrücken.

machen wir doch immer. Leider der Fragesteller nicht.
Um eine FQA zu bekommen solltest du dein BS angeben.

für Win2000 und höher läuft das so

Besorge dir ROBOCOPY und
schreibe in deine Batch

robocopy <quellordner> <zielordner> /mir /max:<Größe in Byte> *.*

cu paulepank
Member: miniversum
miniversum Oct 28, 2007 at 10:00:34 (UTC)
Goto Top
Ja die Vorgehensweise stimmt so.
In die Datei schreibst du dann folgendes rein (ungetestet):
@echo off
set "quelle=C:\quelle"  
set "ziel=C:\ziel"  
set /a minsize=1024*1024*10

FOR /F "delims=" %%i in ('dir /B "%quelle%"') do (  
if %%~zi gtr %minsize% copy "%quelle%\*.*" "%ziel%"  
)

Die Größe wird in Byte angegeben. daher bei minsize die rechnung 1024*1024*10 für die 10 MB.

miniversum
Member: Biber
Biber Oct 28, 2007 at 11:36:42 (UTC)
Goto Top
Moin durchsteiger,

willkommen im Forum.
Nur noch Fussnoten zu paulepanks und miniversums Lösungen.
Zu Miniversums Lösung noch anderthalb Variationen, falls auch Dateien in Unterverzeichnissen kopiert werden sollen:

- Jetzt/ Dateien aus Verzeichnis %quelle% nach %ziel% kopieren ohne evtl Dateien aus Unterverzeichnissen
@echo off & Setlocal
set "quelle=C:\quelle"  
set "ziel=C:\ziel"  
set /a minsize=1024*1024*10

FOR /F "delims=" %%i in ('dir /B "%quelle%"') do (  
if %%~zi gtr %minsize% copy "%quelle%\%%~nxi" "%ziel%\"  
)

- Erweiterung / Verzeichnis %quelle% nach %ziel% kopieren; Dateien aus Unterverzeichnissen auch; aber alles in Verzeichnis %ziel%
@echo off & Setlocal
set "quelle=C:\quelle"  
set "ziel=C:\ziel"  
set /a minsize=1024*1024*10

FOR /F "delims=" %%i in ('dir /B /s "%quelle%"') do (  
if %%~zi gtr %minsize% copy "%%~fi" "%ziel%\"  
)
--oder-

@echo off & Setlocal
set "quelle=C:\quelle"  
set "ziel=C:\ziel"  
set /a minsize=1024*1024*10

FOR /R "%quelle%"  %%i in (*) do (  
if %%~zi gtr %minsize% copy "%%~fi" "%ziel%\"  
)

Falls tatsächlich Verzeichnisstrukturen/-Bäume zu kopieren sind, dann ist ein eigens dafür gebasteltes Werkzeug wie RoboCopy/XCopy besser geeignet.
Zu deiner Frage "Wie eine Bat-Datei eintippseln?"...
Ja, geht mit dem M$-Standard-Editor wie von dir beschrieben.
(Kleine) Vereinfachungen: Du kannst beim "Speichern" direkt den Dateinamen mit Endung ".bat" eingeben.
Dann allerdings alles in Anführungszeichen (Beispiel: Button {Speichern}-->"test.bat" in Anfü-Zeichen.
-oder-
Du kannst natürlich direkt eine neue *.Bat erzeugen mit Eingabe vom notepad d:\batch\test.bat am CMD-Prompt.
-oder-
falls Du öfters als zweimal im Jahr Skripte bearbeiten willst:
Lade Dir einen der meist genannten Free-/Shareware-Editoren herunter (TextPad, UltraEdit..).

Grüße
Biber
Member: durchsteiger
durchsteiger Oct 28, 2007 at 11:40:56 (UTC)
Goto Top
Ich übernahm den Text von Dir, @paulepank, nachdem ich "ROBOCOPY" installiert habe - nichts geschah.

Ich übernahm den Text von Dir, @miniversum - nichts geschah.
Ich danke euch beiden trotzdem für die Mühe.

Mein Betriebssystem ist WindowsXP HomeEdition.
Member: durchsteiger
durchsteiger Oct 28, 2007 at 11:47:04 (UTC)
Goto Top
Ja, der Verzeichnisbaum soll beibehalten werden.
Ich bevorzuge "ROBOCOPY".
Member: durchsteiger
durchsteiger Oct 28, 2007 at 12:03:15 (UTC)
Goto Top
Das Kopieren funktioniert!!!
Ich habe eine letzte Frage: Wofür steht: *.* ?
Member: Biber
Biber Oct 28, 2007 at 12:41:02 (UTC)
Goto Top
Moin durchsteiger,

das *.* sind so genannte Wildcards/Jokerzeichen.
In diesem Fall steht "*.*" für Dateien mit "Name ist beliebig" und "Dateiendung ist beliebig".

Etwas vollständigere Informationen bekommst Du,wenn Du am CMD-Prompt die jeweiligen Hilfe-Infos zu den oben verwendeten Befehlen abrufst.
Also "Dir /?" , "For /?" , "copy /?" oder auch "Robocopy /?".

Da die eigentliche Frage jetzt beantwortet zu sein scheint, setze ich den Beitrag mal auf "Gelöst" und "Geschlossen".

Grüße
Biber