# .bat - Umbenennung läuft auf Fehler



## wyk14591 (4. August 2017)

Hallo Leute.
Ich hab ein Problem
Ich möchte jeweils in einem Ordner alle Dateien mit einem Datum davor umbenennen.
Hierzu will/kann ich keine Software installieren sondern will/muss das mit einer Batch lösen.
Leider läuft mein Versuch immer auf Fehler.

@Echo off

SET Pfad=c:\datatest

for /F "tokens=1-4 delims=. " %%i in ("%date%") do (
  set day=%%i
  set month=%%j
  set year=%%k
)

FOR /F "usebackq tokens=*" %%i IN (`dir %Pfad% /A:-D /B`) DO (
 echo Alt: %Pfad%\%%i
 echo Neu: %Pfad%\%year%-%month%-%day%-%%i
 ren %Pfad%\%%i %year%-%month%-%day%-%%i)

Ergebnis ist immer "Syntaxfehler"!?!


----------



## Bratkartoffel (4. August 2017)

Hi,

ich bin jetzt zwar kein Batch-Profi und kann das nicht testen, aber ich vermute dass die ")" am Ende der Zeile mit dem "ren" eigentlich in die nächste Zeile müsste:

```
@Echo off

SET Pfad=c:\datatest

for /F "tokens=1-4 delims=. " %%i in ("%date%") do (
set day=%%i
set month=%%j
set year=%%k
)

FOR /F "usebackq tokens=*" %%i IN (`dir %Pfad% /A:-D /B`) DO (
echo Alt: %Pfad%\%%i
echo Neu: %Pfad%\%year%-%month%-%day%-%%i
ren %Pfad%\%%i %year%-%month%-%day%-%%i
)
```

Grüsse,
BK


----------



## wyk14591 (4. August 2017)

leider hat das auch nichts geholfen. Das hatte ich schon probiert. Vielleicht noch ne Idee?


----------



## vfl_freak (4. August 2017)

Moin,
bin jetzt auch nicht (mehr) der Experte, aber poste erstmal die genaue Fehlermeldung!

Was genau ist "delims" ?
Dann ("%date%") ... muss das wirklich in Hochkommata stehen? 
Und was ist 'date'?

Falls es nicht weiter eingrenzbar ist, mal die Schleifen einzeln durchlaufen (also nicht beide in einer Datei). Ggf. auch nur zeilenweise ...

VG Klaus


----------



## HonniCilest (7. August 2017)

Ich bin leider auch kein bat-Experte, ich bevorzuge bei solchen Fragen immer Powershell, ich finde bat immer so unleserlich.

Aber ich hätte wenige Vermutungen, die du ggf. überprüfen kannst:

1. Ein Tag ist aus meiner sich z.B. heute der 07.08.2017, zumindest gibt mir das %date% aus. Wenn du nun nach '.' trennst, dann hast du 3 Token und nicht 4. Ich weiß nicht inwieweit Systemeinstellungen Einfluss auf das Format von %date% haben.
2. Wenn ich deinen Code haargenau kopiere sind 2 'Sonderzeichen', jeweils 1 vor und nach SET Pfad im Code enthalten. Ich weiß nicht, ob die auch in deinem Code stehen oder in irgendeiner Form von Tutorials.de kommen und daher nur hier auftauchen.


----------



## Biber3 (9. August 2017)

Moin wyk15591,

ich denke, den Syntaxfehler ttritt auf, wenn du eine "Datei mit Leerzeichen im Namen" umbenennen willst.
Streiche:
ren %Pfad%\%%i %year%-%month%-%day%-%%i
Setze
ren "%Pfad%\%%i" "%year%-%month%-%day%-%%i"

Grüße
Biber


----------

