PEAKTOP wrote:
Можно даже без рара, когда-то подглядел в конфе:

for /F "tokens=1,2,3  delims=/. " %%a in ('date /T') do set
date_name=%%c.%%b.%%a
set history_dir=history\%date_name%

With best regards,  Nikolay Ponomarenko


Спасибо. Идея, однако.

У меня сделано так (Win2003):

SET Max_Files=5

rem This value is needed for deleting old backups
rem   without it we could not SET and READ new value inside FOR circle
SETLOCAL ENABLEDELAYEDEXPANSION

rem Get then current date: YYYY-MM-DD
rem !!! this code depends on computer locale settings !!!
rem FOR /F "tokens=1-4" %%i in ('date/t') do set ttt=%%j
rem FOR /F "tokens=1-4 delims=/" %%i in ("%ttt%") do set curdate=%%k-%%j-%%i
FOR /F "tokens=1-3" %%i in ('date/t') do set ttt=%%i
FOR /F "tokens=1-4 delims=." %%i in ("%ttt%") do set curdate=%%k-%%j-%%i

..Дальше дата стыкуется к имени файла и идет бэкап

..потом идет рестор

..если успешно - удаляем старые бэкапы:

:DEL_OLD
rem  -- delete old backups --
for /F %%i in ('dir %back_dir%\*.gbk /b /o:-d') do (
 if /i !Max_Files! GTR 0 (SET /A Max_Files -= 1) ELSE del %back_dir%\%%i
)

Ответить