43964
Goto Top

Datei umbennen (täglicher Batch)

Hallo zusammen,

ich habe folgendes Problem:

In unserem System werden täglich 2 Dateien (Excel-Tabellen) erzeugt.
Diese werden in einem Ordner "E:\Daten\20080108_203020\01\" gespeichert. Der Ordner "Daten" und "01" bleibt immer gleich, jedoch ändert sich der "mittlere" Ordner jeden Tag. (JahrMonatTag_StundeMinuteSekunde).

Das Problem ist, dass diese Dateien den falschen Dateinamen haben (ABC01.xls statt DEF01.xls....Als Beispiel).

Die Kunst besteht nun darin, eine kleine Batch zu schreiben, die diese Dateien täglich umbenennt (immer von ABC in DEF).

Es ist nicht möglich, die Dateinamendefinition in dem Programm zu ändern wo die Dateien erzeugt werden.

Mein Problem liegt jetzt darin, dass sich der Ordnername täglich ändert, und selbst die Sekundenzahl am Ende nie gleich ist.

Hat jemand eine einfach fixe Lösung?
Vielen Dank!!


^^[Edit Biber] Tippfehler "umbennen" in Titel "umbannt" [/Edit]

Content-Key: 77658

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

Printed on: April 20, 2024 at 00:04 o'clock

Member: miniversum
miniversum Jan 09, 2008 at 14:11:40 (UTC)
Goto Top
Eine mögliche Lösung wäre die:
@Ren "E:\Daten\%Date:~-4%%Date:~3,2%%Date:~0,2%_??????\01\ABC??.xls" DEF??.xls"
Vorausgesetzt:
1. Die Batch wird noch am gleichen Tag (Abends) ausgeführt
2. Die Datumseinstellung des Systems ist TT.MM.JJJJ

miniversum
Mitglied: 43964
43964 Jan 09, 2008 at 14:14:11 (UTC)
Goto Top
Danke für die Antwort!

Beide Voraussetzungen werden erfüllt.
Ich probiere es mal aus.
Vielen Dank!
Mitglied: 43964
43964 Jan 09, 2008 at 14:21:44 (UTC)
Goto Top
Hi,
es funktioniert leider nicht face-sad

Die "??????" bei der Zeitangabe machen Probleme.
Fehlermeldung "...Syntax...ist falsch"

Gebe ich für einen Testordner die korrekte Zeit in der Batch an (z.B. 203050) dann funktioniert es einwandfrei.
Member: bastla
bastla Jan 09, 2008 at 14:35:44 (UTC)
Goto Top
Hallo Schwimmbutz!

Soferne es keine anderen "ABC01.xls"-Dateien, welche nicht umbenannt werden sollen, unterhalb von "E:\Daten" gibt, dann einfach:
for /f %%i in ('dir /s /b /a-d "E:\Daten\ABC01.xls"') do ren "%%~fi" "DEF01.xls"  

Grüße
bastla
Mitglied: 43964
43964 Jan 09, 2008 at 14:43:21 (UTC)
Goto Top
Super!!
Das klappt!

Vielen herzlichen Dank!!!