Batch file - bestandsnaam met datum

Status
Niet open voor verdere reacties.

Myclos81

Gebruiker
Lid geworden
17 nov 2007
Berichten
157
Beste

ik heb een batch bestand die een xls genereert van een .rpt (Crystal Report) file.
Daar zou ik voor de .xls een datum willen aan toevoegen met formaat yyyyMMdd.

Nu heb ik al vanalles geprobeerd maar lukt me eerst en vooral niet om het juiste formaat van de datum te krijgen.
Heb al geprobeerd met %datum% en %date% maar dit neemt hij niet.

Ben een leek in dit soort batch bestandjes. Kan iemand me op weg helpen ?
 
Code:
echo %date:~10,4%%date:~4,2%%date:~7,2%
 
Laatst bewerkt:
Ik niet:
Date.jpg

Laat eens zien wat je krijgt als je echo %date% ingeeft.
 
Laatst bewerkt:
Ligt aan de taalinstellingen:
a. volgorde maand + dagnummer andersom
b. aanduiding dag v.d. week 1 korter (dus di ipv. tue)

Met een NL taal/currency instelling levert
echo %date:~9,4%%date:~6,2%%date:~3,2%

bij mij wél het resultaat dat Edmoor liet zien: 20160119

Welke taalkeuze er is gedaan/ingesteld zou evt. uit de registry gelezen kunnen worden om te verwerken in de batch-file, maar als de batch-file telkens onder dezelfde gebruiker/instellingen wordt gedraaid kan dat evt. achterwege blijven.

Tijs.
 
Laatst bewerkt:
Wat extra uitleg over die code is wellicht ook handig:

%date:~10,4% geeft van de waarde die %date% terug geeft vanaf positie 10, 4 posities terug.
Dat is dus die 10,4

Met die info zou je aan de slag moeten kunnen in je eigen situatie.
 
Laatst bewerkt:
In deze link staat batch-code die taal-instelling onafhankelijk is (gebruikt WMIC om datum+tijd uit te lezen in gestandaardiseerd format) in de posting van nightcoder, 2 mei 2013

Natuurlijk heb jij dan niet alles nodig (tijd-aanduiding niet) dus zou jij de variabele logtimestamp als volgt kunnen opzetten:
[...]
Code:
Set logtimestamp=%_yyyy%%_mm%%_dd%
[...]

Tijs.
 
Bedankt, ik heb dit nu aangepast naar mijn wensen.
Hoe kan ik dit nu concateneren aan mijn bestandsnaam ?
 
Lijkt me nu simpel. Gewoon erbij zetten wat je erbij wilt hebben:
Code:
echo Je_bestand_%date:~10,4%%date:~4,2%%date:~7,2%.xls

Dat levert dit op:
Je_bestand_20160119.xls
 
Hangt er vanaf of het .xls bestand als enige in die map staat en (later in de batch-file) wordt verplaatst naar een andere map.
Anders moeten we vooraf weten welke naam het gegenereerde .xls bestand heeft, anders hernoemen we wellicht het verkeerde .xls bestand(!)
Dus die vraag moet beantwoord worden, anders zitten we code te bedenken die onnodig is.
Stel dat je de naam vooraf weet, dan zou het zo kunnen (even Output.xls als vaste bestandsnaam genomen, moet jij aanpassen aan jouw situatie):
Code:
ren Output.xls %logtimestamp%Output.xls
wat resulteert in:
20160119Output.xls

Mogelijk zou het in Crystal Report mogelijk zijn om meteen de juiste timestamp te laten opnemen in de naamgeving van het .xls bestand.

Tijs.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan