Um den Tag des Jahres (DOY) aus einem bestimmten Datum in einer Batchdatei zu extrahieren und zu analysieren, können Sie die verschiedenen datums-/zeitbezogenen Befehle und ein wenig String-Manipulation verwenden. Hier ist ein Ansatz, den Sie verfolgen können:
„
@echo aus
::Datumswert im Format JJJJMMTT
setze DATE_VALUE=20220715
::Extrahieren Sie die Monats- und Tagesteile
setze MONTH=%DATE_VALUE:~4,2%
setze DAY=%DATE_VALUE:~6,2%
::Konvertieren Sie den Monat mit CHOICE /N in eine Zahl im Bereich von 1 bis 12 (falls erforderlich).
wenn %MONTH% NEQ 1 wenn %MONTH% NEQ 2 wenn %MONTH% NEQ 3 ...
Wahl /n /c:123456789101112
::Verwenden Sie die Teile MONAT und TAG, um den DOY zu berechnen
setze DOY=0
::Addieren Sie die Anzahl der Tage für jeden Monat (31 für Januar, 28 oder 29 für Februar, 31 für März, ...)
if %MONTH% GEQ 2 ( set /a DOY+=31 )
if %MONTH% GEQ 3 ( set /a DOY+=28 )
if %MONTH% GEQ 4 ( set /a DOY+=31 )
if %MONTH% GEQ 5 ( set /a DOY+=30 )
if %MONTH% GEQ 6 ( set /a DOY+=31 )
if %MONTH% GEQ 7 ( set /a DOY+=30 )
if %MONTH% GEQ 8 ( set /a DOY+=31 )
if %MONTH% GEQ 9 ( set /a DOY+=31 )
wenn %MONTH% GEQ 10 ( set /a DOY+=30 )
if %MONTH% GEQ 11 ( set /a DOY+=31 )
wenn %MONTH% GEQ 12 ( set /a DOY+=30 )
::Fügen Sie die Tagesnummer hinzu
setze /a DOY+=%DAY%
::Zeigt das DOY an
echo Tag des Jahres (DOY):%DOY%
Pause
„
Erläuterungen:
1. Datumsteile extrahieren :Verwenden Sie „%DATE_VALUE:~4,2%“, um den Monat (4. bis 5. Zeichen) zu extrahieren, und „%DATE_VALUE:~6,2%“, um den Tag zu extrahieren.
2. Monatsnummer konvertieren :Verwenden Sie „CHOICE /N“, um eine numerische Monatszahl zu erhalten, wenn diese nicht im Standardformat vorliegt.
3. DOY berechnen :Berechnen Sie den DOY, indem Sie ab Februar schrittweise die Anzahl der Tage für jeden Monat addieren.
4. DOY anzeigen :Zeigen Sie den berechneten DOY mit „Echo“ an.
Dieser Ansatz bietet eine grundlegende Methode zum Parsen des Tages des Jahres aus einer bestimmten Datumszeichenfolge. Sie können das Skript entsprechend Ihren spezifischen Anforderungen ändern.