yogibaer
Goto Top

Dateinamen per Batch das Tagesdatum hinzufügen

Hallo zusammen,

vielleicht kann mir jemand von euch helfen.

Jede Nacht um 03.00 Uhr (geht wegen Sicherungsjobs nicht früher) werden Dateien mit dem Namen abcd1.html bis abcd8.html erzeugt. Diese werden bis jetzt händisch in abcd1__20070531 bis abcd8__20070531 umbenannt (es wird also das Tagesdatum vom Vortag drangehängt). Das ganze würde ich gerne per Batch automatisieren, hab da aber im Moment gar keine Idee, wie ich das angehen soll.

Content-Key: 60314

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

Ausgedruckt am: 28.03.2024 um 17:03 Uhr

Mitglied: 48915
48915 01.06.2007 um 09:29:07 Uhr
Goto Top
Mit einem vb script ist das problemlos machbar, Du solltest das Datum aber vor den Dateinamen setzen, dann ist es sehr einfach.
Noch einfacher wäre es wenn Du einen Ordner mit dem Tagesdatum erstellst und alle Dateien da hinein schiebst. Oder müssen die neuen Dateinamen unbedingt das Datum beinhalten ?

Gruß
snaketown
Mitglied: bastla
bastla 01.06.2007 um 09:50:18 Uhr
Goto Top
Hallo yogibaer und willkommen im Forum!

Soferne Du bei der Eingabe von
echo %date%
eine Ausgabe ohne vorangestellten Wochentag, also in der Form "01.06.2007", erhältst, könntest Du folgende Batchzeile verwenden:
for %%i in ("D:\Verzeichnis\abcd?.html") do ren "%%i" "%%~ni%date:~7,4%%date:~3,2%%date:~0,2%%%~xi"  

Grüße
bastla

[Edit] Sorry, hatte sehr kurz drübergelesen und die Anforderung "Vortag" übersehen, daher wird bei der oben stehenden Zeile das heutige Datum verwendet ... [/Edit]

[Edit2] Abgesehen von der unter Biber's Link dargestellten Lösung würde ich in diesem Fall, wie von snaketown vorgeschlagen, eher VBScript (zumindest für die Datumsermittlung) einsetzen. [/Edit2]
Mitglied: Biber
Biber 01.06.2007, aktualisiert am 22.10.2014 um 18:57:59 Uhr
Goto Top
Moin yogibaer,

willkommen im Forum,
hab da aber im Moment gar keine Idee, wie ich das angehen soll.
Bitte probier in solchen Fällen einfach mal unsere geniale Forumssuche aus.

Du wirst erstaunt sein, wie viele Treffer Du z.B. bei Suchen nach "Tagesdatum Vortag umbenennen" hast.

Einer der relativ ausführlichen Threads in der Trefferliste ist Datum vom Vortag in eine Datei schreiben.

An Ideen und Anregungen zur Lösung Deiner Anforderung mangelt es hier nicht - siehe auch die Rückfrage von snarchtown oben.


Grüße
Biber

Edit Okt 2014: Es wurde im obigen Link eine falsche content-ID bei irgendeiner Migration zugeordnet.
Bitte diesen Link verwenden Datum vom Vortag in eine Datei schreiben.
Mitglied: yogibaer
yogibaer 01.06.2007 um 11:43:50 Uhr
Goto Top
Hallo Snaketown,

es ist so, das die Dateien das Datum des Vortages enthalten müssen und zwar hinter dem eigentlichen Dateinamen.
Mitglied: yogibaer
yogibaer 01.06.2007 um 11:56:04 Uhr
Goto Top
Hallo bastla,

wenn ich jetzt mal das Problem mit dem Vortagsdatum außer acht lasse ist es genau das, was ich brauche.

Werde mal sehen, ob wir das hier so geregelt kriegen, das der Job zur Dateierstellung doch früher läuft.
Mitglied: bastla
bastla 01.06.2007 um 13:50:03 Uhr
Goto Top
Hallo yogibaer!

Werde mal sehen, ob wir das hier so geregelt kriegen, das der Job zur Dateierstellung doch früher läuft.
Bevor Du das tust, versuch es vielleicht einmal mit folgender Variante:
@echo off & setlocal
set "gTemp=%Temp%\Gestern.vbs"  
echo g=DateAdd("d",-1,Date):WScript.Echo Right(g,4)^&Mid(g,4,2)^&Left(g,2)>"%gTemp%"  
for /f %%i in ('cscript //nologo "%gTemp%"') do set G=%%i  
del "%gTemp%"  
for %%i in ("D:\Verzeichnis\abcd?.html") do ren "%%i" "%%~ni%G%%%~xi"  
Die dritte Zeile erstellt ein (temporäres) VB-Script, das die Berechnung und Formatierung des Datums "Heute-1" durchführt (siehe -1 vor ,Date). In Zeile 4 wird die Ausgabe des Scripts in die Variable %G% geschrieben, und, weil's ja temporär sein soll, das Script in Zeile 5 wieder gelöscht.

Grüße
bastla