Немного дополнил ф-цию получения текущей даты из поста
18. Дополнение связано с различием в отображении даты в зависимости от sLongDate и sShortDate. Я обошелся без необходимости проверки этих параметров в реестре, а поступил проще (правда, понадобилась лишняя переменная).
Код:

Rem Чтение текущей даты в переменные окружения
:GetDate
for /f "tokens=1,3" %%j in ('reg query "HKCU\Control Panel\International" /s^|findstr /C:"iDate" /C:"sDate"') do set %%j=%%k
for /f %%j in ('echo %date%^|find " " /C') do (
if %%j == 1 (
for /f "tokens=2 delims= " %%j in ('echo %date%') do set mdate=%%j
) else (
set mdate=%date%
)
)
for /f "tokens=1,2,3 delims=%sDate%" %%j in ('echo %mdate%') do (
if %iDate%==0 (
set Month=%%j
set Day=%%k
set Year=%%l
)
if %iDate%==1 (
set Day=%%j
set Month=%%k
set Year=%%l
)
if %iDate%==2 (
set Year=%%j
set Month=%%k
set Day=%%l
)
)
goto :EOF
Да, совсем забыл. Вот ф-ция для установки даты:
Код:

Rem Установка даты
:SetDate
if %iDate%==0 (
date %Month%%sDate%%Day%%sDate%%Year%
) else (
if %iDate%==1 (
date %Day%%sDate%%Month%%sDate%%Year%
) else (
if %iDate%==2 (
date %Year%%sDate%%Month%%sDate%%Day%
)
)
)
goto :EOF
Ситуация, в к-рой могут пригодиться приведенные выше ф-ции:
Код:

Rem Определение текущей даты
call :GetDate
Rem прибавление 1 года к дате
set /a Year+=1
Rem Установка даты
call :SetDate
Rem Выполнение определенных манипуляций
Rem Возврат реальной даты (отнимаем 1 год)
set /a Year-=1
Rem Установка даты
call :SetDate