Batch script date von gestern ermitteln

  • #1
Z

Zamperl

Bekanntes Mitglied
Themenersteller
Dabei seit
05.10.2005
Beiträge
66
Reaktionspunkte
0
Hallo Leute,
ich möchte per Batch mit robocopy verzeichnisse mit dem datum von gestern verschieben. habe schon etwas gefunden, leider funzt es nicht so ganz:

Code:
@echo off
set dat=%Date%
set day=%date:~7,2%
set month=%date:~4,2%
set year=%date:~10,4%
echo %year%%month%%day%

set /a day-=1
if %day% LEQ 0 set /a month-=1
if %month% LEQ 0 set /a year-=1 & set month=12

if %day% GEQ 01 goto done
rem day one moth ago, proper day
if %month% EQU 1 set day=31
if %month% EQU 3 set day=31
if %month% EQU 4 set day=30
if %month% EQU 5 set day=31
if %month% EQU 6 set day=30
if %month% EQU 7 set day=31
if %month% EQU 8 set day=31
if %month% EQU 9 set day=30
if %month% EQU 10 set day=31
if %month% EQU 11 set day=30
if %month% EQU 12 set day=31

if %month% NEQ 2 goto done
rem *** day in February, assay leap year
set /a mod4=year % 4
set /a mod100=year % 100
set /a mod400=year % 400
set day=28
if %mod4% NEQ 0 goto done
set day=29
if %mod100% NEQ 0 goto done
set day=28
if %mod400% NEQ 0 goto done
set day=29
:done

echo %year%%month%%day%

Die 1. Ausgabe von %year%%month%%day% ist korrekt, z.B: 20100805
Die 2. Ausgabe von %year%%month%%day% ist inkorrekt, z.B: 2010084 -> es fehlt die 0 vor der 4 :-\

Könnte mir bitte jemand helfen und mitteilen, wie ich den %day% wieder auf zwei Stellen bringen kann? :)

Grüße
 
  • #2
Falls die Frage noch aktuell ist, folgende Anweisungen ergänzen. Bei Tag und Monat werden jeweils 100 hinzuaddiert und anschliessend nur die letzten beiden Stellen verwendet, so wird aus 2+100=102 und danach 02.
Code:
:done
set /a day=%day%+100
set day=%day:~1,2%
set /a month=%month%+100
set month=%month:~1,2%
 
Thema:

Batch script date von gestern ermitteln

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben