CMD сохранение даты в переменной

C:\Users\xxx>set mydate=%date:~6,4%%date:~3,2%%date:~0,2%
C:\Users\xxx >echo %mydate%
20140128
C:\Users\xxx >set mydate=%date:~6,4%-%date:~3,2%-%date:~0,2%
C:\Users\xxx >echo %mydate%
2014-01-28

Другой способ, более глючный, но со временем:

C:\Users\xxx>wmic.exe OS get LocalDateTime
LocalDateTime
20140128155125.373000+360 
C:\Users\xxx>for /f "delims=." %i in ('wmic.exe OS get LocalDateTime ^| find "."') do set sDateTime=%i
C:\Users\xxx>echo %sDateTime%
20140128155305

Теперь например можно затолкать в имя файла

.bat robocopy backup

Образец скрипта — копирует содержимое нужной папки в папку с сегодняшним числом в нужном месте и сохраняет лог с датой в имени файла:

set sDateTime=%date:~6,4%-%date:~3,2%-%date:~0,2%
robocopy d:\docs\ \\backup-server\backup\srv\D\docs\%sDateTime%\  /mir /z /R:1 /W:2 /LOG:"C:\log\docs_%sDateTime%.log"

Можно последнюю строчку несколько раз повторить, меняя названия папок.