c-h-a-r-l-y
Goto Top

Alle Dateinamen des typ .xml in allen unterverzeichnissen via Batch automatisch mit datum JJJJMMDD ergänzen

Hallo geehrte Gemeinde,

nach einem ganzen Tag der Suche - bin ganz frisch beigetreten und hoffe auf einen Helden eine Heldin.

Problemschilderung:

Ich bin gefordert, diverse Files in einer vorgegeben Verzeichnisstruktur zur "weiteren Verarbeitung" bereitzustellen.
die "weitere Verarbeitung" entzieht sich jedoch meinem Einfluß - so bin ich gebeten die bereitgesteellten Files wie folgt umzubenennen:

JJJJMMDD_hhmm_UrsprünglicherDateiname.xml

hierbei stellt JJJJMMDD das aktuell aus dem System ausgelesene Datum dar, welches ich bereits erfolgreich einem Dateinamen vorangestellt habe.
Leider nur "einer bestimmten Datei" in "einem bestimmten Verzeichnis"

bisher habe ich mir dies von euch zusammengeklubt face-smile

cd C:\Daten\export

FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=%%c%%d%%b%%a
echo %cdate%
FOR /F "tokens=1,2,3 delims=/: " %%a in ('Time/T') do set CTIME=%%a%%b%%c
echo %CTIME%

ren *.xml %cdate%_%CTIME%_%xyz%.xml

Hiermit habe ich natürlich nur für die erste .xml Datei im "export"-Verzeichnis einen Teil-Erfolg - weil ja der ursprüngliche Name der Datei nun leider kein Bestandteil des Datenamens mehr ist face-sad
Bei der zweiten Datei erfolgt dann der Abbruch mit der Meldung "Dateiname existiert bereits".

Meine naive Idee war es den ursprünglichen Dateinamen erst auszulesen "xyz" und dann (quasi ähnlich wie das Datum) als Variable wieder anzufügen ???

Ja und Danngibt es dann noch die Herrausforderung, das für alle Dateien in allen Unterverzeichnissen automatisch weiterlaufen zu lassen!

Also, Ich hoffe hier nach allen Regeln der Zunft "gebeitragt" zu haben.
Würde mich über die "Nachhilfe" wirklich freuen.
Vielen Dank im Vorraus
C-h-a-r-l-y

Content-ID: 171214

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

Ausgedruckt am: 25.11.2024 um 13:11 Uhr

Skyemugen
Skyemugen 09.08.2011 um 19:34:03 Uhr
Goto Top
Aloha,

nun, was du benötigst, ist eine weitere for-Schleife wie z.B.
for /r "C:\Daten\export" %%s in (*.xml) do echo ren "%%s" "%cdate%_%CTIME%_%%~nxs"
Somit kannst du auch das Wechseln des Verzeichnisses entfallen lassen.
Zur Vorschau ist erst einmal ein echo eingebaut face-wink

greetz André
Xaero1982
Xaero1982 09.08.2011, aktualisiert am 18.10.2012 um 18:47:48 Uhr
Goto Top
[OT]
Hi Charly,

und willkommen im Forum.

Also ich muss sagen:

Nach dem:

war dein Beitrag ein echter Augenschmaus und das für einen neuen User.

Es geht also auch anders!
Danke!

VG

[/OT]
Friemler
Friemler 09.08.2011 um 19:48:33 Uhr
Goto Top
Hallo C-h-a-r-l-y,

von mir noch ein Vorschlag, der den Zeitstempel mit einem Inline-VBScript ermittelt und damit die schon oft besprochenen Schwierigkeiten der Zerlegung der Ausgabe von date /t bzw. time /t (Welches Datumsformat hätten's denn gern'?) vermeidet.
@echo off & setlocal


set "SrcDir=E:\Export"  


set "VBScript=%Temp%\GetTimeStamp.vbs"  

>"%VBScript%" echo WScript.Echo Year(Now) ^& Right("0" ^& Month(Now), 2) ^& Right("0" ^& Day(Now), 2) ^& "_" ^& Right("0" ^& Hour(Now), 2) ^& Right("0" ^& Minute(Now), 2) ^& Right("0" ^& Second(Now), 2)  

for /f "delims=" %%t in ('cscript /nologo "%VBScript%"') do (  
  set "TimeStamp=%%t"  
)

del "%VBScript%"  


for /r "%SrcDir%" %%s in (*.xml) do (  
  ren "%%s" "%TimeStamp%_%%~nxs"  
)

Gruß
Friemler
C-h-a-r-l-y
C-h-a-r-l-y 10.08.2011 um 09:10:37 Uhr
Goto Top
Hallo @ all,

ich bin ja total geplättet in welchem Tempo ihr hier die Suchenden bedient.
Habe richtig ein schlechtes Gewissen, dass ich für mein "Dankeschön" nun länger gebraucht habe als Ihr für die Lösung face-smile


@andré

Ja, genau das hab ich gubraucht ! Ein entschiedenes "Danke" an Dich !


@Xaero1982

Vielen Dank für die Blumen face-smile


@Friemler

Bis Ich dein Inline-VBscript auch nur im Ansatz verstanden habe werde - vergeht bestimmt noch reichlich Zeit.
Hab mich bisher um VB herumegedrückt - das scheint sich jetzt wohl zu rächen.
Danke für die Inspiration.

Viele Grüße
C-h-a-r-l-y