For å trekke ut og analysere dagen i året (DOY) fra en gitt dato i en batch-fil, kan du bruke de forskjellige dato/klokkeslett-relaterte kommandoene og litt strengmanipulering. Her er én tilnærming du kan følge:
```
@ekko av
::Datoverdi, i formatet ÅÅÅÅMMDD
sett DATE_VALUE=20220715
::Trekk ut måneds- og dagdelene
sett MONTH=%DATE_VALUE:~4,2%
sett DAY=%DATE_VALUE:~6,2%
::Konverter måneden til et tall i området 1 til 12 ved å bruke CHOICE /N (hvis nødvendig)
hvis %MONTH% NEQ 1 hvis %MONTH% NEQ 2 hvis %MONTH% NEQ 3 ...
valg /n /c:123456789101112
::Bruk delene MÅNED og DAG for å beregne DOY
sett DOY=0
::Legg til antall dager for hver måned (31 for januar, 28 eller 29 for februar, 31 for mars, ...)
hvis %MONTH% GEQ 2 (sett /a DOY+=31)
hvis %MONTH% GEQ 3 (sett /a DOY+=28)
hvis %MONTH% GEQ 4 (sett /a DOY+=31)
hvis %MONTH% GEQ 5 (sett /a DOY+=30)
hvis %MONTH% GEQ 6 (sett /a DOY+=31)
hvis %MONTH% GEQ 7 (sett /a DOY+=30)
hvis %MONTH% GEQ 8 (sett /a DOY+=31)
hvis %MONTH% GEQ 9 (sett /a DOY+=31)
hvis %MONTH% GEQ 10 (sett /a DOY+=30)
hvis %MONTH% GEQ 11 (sett /a DOY+=31)
hvis %MONTH% GEQ 12 (sett /a DOY+=30)
::Legg til dagnummeret
sett /a DOY+=%DAY%
::Vis DOY
ekko dag i året (DOY):%DOY%
pause
```
Forklaringer:
1. Pak ut datodeler :Bruk `%DATE_VALUE:~4,2%` for å trekke ut måneden (4. til 5. tegn) og `%DATE_VALUE:~6,2%` for å trekke ut dagen.
2. Konverter månedsnummer :Bruk `CHOICE /N` for å få et numerisk månedsnummer hvis det ikke er i et standardformat.
3. Beregn DOY :Beregn DOY ved gradvis å legge til antall dager for hver måned fra februar.
4. Vis DOY :Vis den beregnede DOY ved å bruke `ekko`.
Denne tilnærmingen gir en grunnleggende metode for å analysere dagen i året fra en gitt datostreng. Du kan endre skriptet i henhold til dine spesifikke krav.