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
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
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
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
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 171214
Url: https://administrator.de/contentid/171214
Ausgedruckt am: 25.11.2024 um 13:11 Uhr
4 Kommentare
Neuester Kommentar
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
Gruß
Friemler
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