For at udtrække og parse årets dag (DOY) fra en given dato i en batch-fil, kan du bruge de forskellige dato/tids-relaterede kommandoer og en smule strengmanipulation. Her er en tilgang, du kan følge:
```
@ekko slukket
::Datoværdi, i formatet ÅÅÅÅMMDD
sæt DATE_VALUE=20220715
::Udtræk måned- og dagdelene
sæt MONTH=%DATE_VALUE:~4,2%
sæt DAY=%DATE_VALUE:~6,2%
::Konverter måneden til et tal i intervallet 1 til 12 ved hjælp af CHOICE /N (hvis nødvendigt)
hvis %MONTH% NEQ 1 hvis %MONTH% NEQ 2 hvis %MONTH% NEQ 3 ...
valg /n /c:123456789101112
::Brug delene MÅNED og DAG til at beregne DOY
sæt DOY=0
::Tilføj antallet af dage for hver måned (31 for januar, 28 eller 29 for februar, 31 for marts, ...)
hvis %MONTH% GEQ 2 (sæt /a DOY+=31)
hvis %MONTH% GEQ 3 (sæt /a DOY+=28)
hvis %MONTH% GEQ 4 (sæt /a DOY+=31)
hvis %MONTH% GEQ 5 (sæt /a DOY+=30)
hvis %MONTH% GEQ 6 (sæt /a DOY+=31)
hvis %MONTH% GEQ 7 (sæt /a DOY+=30)
hvis %MONTH% GEQ 8 (sæt /a DOY+=31)
hvis %MONTH% GEQ 9 (sæt /a DOY+=31)
hvis %MONTH% GEQ 10 (sæt /a DOY+=30)
hvis %MONTH% GEQ 11 (sæt /a DOY+=31)
hvis %MONTH% GEQ 12 (sæt /a DOY+=30)
::Tilføj dagnummeret
sæt /a DOY+=%DAY%
::Vis DOY
echo Day of Year (DOY):%DOY%
pause
```
Forklaringer:
1. Udtræk datodele :Brug `%DATE_VALUE:~4,2%` for at udtrække måneden (4. til 5. tegn) og `%DATE_VALUE:~6,2%` for at udtrække dagen.
2. Konverter månedsnummer :Brug `CHOICE /N` for at få et numerisk månedsnummer, hvis det ikke er i et standardformat.
3. Beregn DOY :Beregn DOY ved gradvist at tilføje antallet af dage for hver måned fra februar.
4. Vis DOY :Vis den beregnede DOY ved hjælp af `ekko`.
Denne tilgang giver en grundlæggende metode til at analysere dagen på året fra en given datostreng. Du kan ændre scriptet i henhold til dine specifikke krav.