romy: Dateien aus Verzeichnis X nach Verzeichnis Y mit cmd

Beitrag lesen

Hi JürgenB,

in einer Schleife läufst du durch alle Dateien und rufst für jede Datei eine Kopierbatch auf, die prüft und bei Bedarf renamed. Dieses Prüfen muss natürlich in einer Schleife passieren, um zu testen ob schon weitere Versionen der Datei existieren.

klingt gut.

Befehle, die du benötigst, sind u.a.
xcopy
for
if
goto

Mit help erhältst du eine Liste aller Batchbefehle, mit z.B. help if erhältst du Infos zum if-Befehl.

Ich weiß, aber ich kann mit der Erklärung zu "help for" nichts anfangen.
Mal ein Beispiel:

C:>help for
Führt einen Befehl für jede einzelne Datei für einen Satz von Dateien aus.

FOR %Variable IN (Satz) DO Befehl [Parameter]

%Variable  Ein ersetzbarer Parameter bestehend aus einem einzelnen
              Buchstaben.
  >>> Was soll das heißen? Was ist ein ersetzbarer Parameter?  Muss der dahin?

(Satz)      Ein Satz von mindestens einer Datei. Platzhalter sind zulässig.
   >>> Was ist mit Satz gemeint?

Befehl      Befehl, der für jede Datei ausgeführt werden soll.
  Parameter   Parameter und Optionen für den angegebenen Befehl.

Verstehst du, ich begreife die Hilfe nicht. Ich kann PHP-Code schreiben, ich verstehe C-Code und ein bisschen Delphi, selbst Java könnte ich lesen. Ich kann einfach keinen Bezug herstellen zu dieser Art von Code.

Pseudocodemäßig würde ich sagen:
Schleife über alle Dateien des angebenen Verzeichnisses
wenn Datei in Zielvorzeichnis vorhanden, dann rename, dann copy
wenn Datei nicht vorhanden, dann copy

rename am Besten mit Timestamp, dann muss ich nicht umständlich nach schon umbenannten laufenden Nummern suchen.

So, jetzt fange ich an mit der Batch-Datei:

REM Ich gehe davon aus, dass %%i die Datei ist, %% habe ich schon irgendwo gelesen
FOR %%i IN (A:) DO
SET datum=TIME(now,yyyymmtt)
IF EXIST B:%%i (REN %%i %%i%datum%)
XCOPY %%i B:\ /Q /C /Y

Dabei passiert allerdings nichts. Ich bekomme auch keinen Fehler.
Kannst du mir weiterhelfen?

ciao
romy