windows - Skal på \_YYYY\_MM suffiks til filnavn i en batchfil

Indlæg af Hanne Mølgaard Plasc

Problem



Antag, at en rapporteringsdato er bestået i, at der ikke er ledende nul for datoen månedsdelen. Normalt sendes det ind som param1 men nedenfor tvinger jeg en værdi til dette eksempel.


Jeg vil gerne konstruere en streng, hvor måned og år udvindes fra datoen, der sendes ind, og konstruerer en streng i formatet YYYY\_MM, hvor MM har førende nuller.


REM SET ReportingDate=\%1 
SET ReportingDate=7/31/2011

@For /F "tokens=1,2,3 delims=/ " \%\%A in ("\%ReportingDate\%") do @( 
Set Month=\%\%A
Set Day=\%\%B
Set Year=\%\%C
)

echo Year=\%Year\%
echo Month=\%Month\%

SET NewFileName=MEMBOB\_\%Year\%\_\%Month\%.csv


Q: Min viden om batch-filer er begrænset. Hvad skal jeg gøre for at tvinge et ledende nul i montgh, når dato måneden er 1 cifret lang?

Bedste reference


Brug en if-statement til at udfylde en 0, hvis måneden er mindre end 10: [3]


if \%Month\% LSS 10 Set Month=0\%Month\%