tr011_tmn
01-04-2016, 12:02
доброго времени суток коллеги.
Прошу помощи в одном моменте, пытаюсь реализовать следующую конструкцию
set D=%date:~0,2%
SET M=%date:~3,2%
set /a Ma=1%M% - 101
IF %Ma% LSS 10 (SET Mm=0%Ma%) ELSE (SET Mm=%Ma%)
SET Y=%date:~6%
::
FOR /L %%B in (1,1,31) DO (
IF NOT EXIST "%Srv%\backup" (MD "%Srv%\backup" 1>Nul 2>&1)
IF %%B LSS 10 (SET Db=0%%B) ELSE (SET Db=%%B)
SET bName=backup_%Y%.%M%.%Db%.7z
SET bNameR=backup_FED_%Y%.%M%.%Db%.WRK.7z
pause
Call :_ChkRzm
REN "%Srv%\backup\%bName%" "%bNameR%" 1>Nul 2>&1
FORFILES /P "%Srv%\backup" /M *.* /S /D -31 /C "CMD /c DEL /q @PATH"
)
::
:: ==================================================================================================== = ::
::
:_ChkRzm
::
SET Size=100
::
FOR /F %%a in ('dir /b /s /a-d "%Srv%\backup\%dName%"') do (SET x=%%~za)
::
IF %x% LEQ %Size% (DEL /S /Q "%Srv%\backup\%dName%" 1>Nul 2>&1)
::
GoTo :EOF
::
:: ==================================================================================================== = ::
::
не могу добиться что бы значение IF %%B LSS 10 (SET Db=0%%B) ELSE (SET Db=%%B) передавалось в SET bName=backup_%Y%.%M%.%Db%.7z.
Причем если включить отображение на экран происходящего то я вижу в строке IF %%B LSS 10 (SET Db=0%%B) ELSE (SET Db=%%B) правильные значения.
Подскажите что делаю не так.
Прошу помощи в одном моменте, пытаюсь реализовать следующую конструкцию
set D=%date:~0,2%
SET M=%date:~3,2%
set /a Ma=1%M% - 101
IF %Ma% LSS 10 (SET Mm=0%Ma%) ELSE (SET Mm=%Ma%)
SET Y=%date:~6%
::
FOR /L %%B in (1,1,31) DO (
IF NOT EXIST "%Srv%\backup" (MD "%Srv%\backup" 1>Nul 2>&1)
IF %%B LSS 10 (SET Db=0%%B) ELSE (SET Db=%%B)
SET bName=backup_%Y%.%M%.%Db%.7z
SET bNameR=backup_FED_%Y%.%M%.%Db%.WRK.7z
pause
Call :_ChkRzm
REN "%Srv%\backup\%bName%" "%bNameR%" 1>Nul 2>&1
FORFILES /P "%Srv%\backup" /M *.* /S /D -31 /C "CMD /c DEL /q @PATH"
)
::
:: ==================================================================================================== = ::
::
:_ChkRzm
::
SET Size=100
::
FOR /F %%a in ('dir /b /s /a-d "%Srv%\backup\%dName%"') do (SET x=%%~za)
::
IF %x% LEQ %Size% (DEL /S /Q "%Srv%\backup\%dName%" 1>Nul 2>&1)
::
GoTo :EOF
::
:: ==================================================================================================== = ::
::
не могу добиться что бы значение IF %%B LSS 10 (SET Db=0%%B) ELSE (SET Db=%%B) передавалось в SET bName=backup_%Y%.%M%.%Db%.7z.
Причем если включить отображение на экран происходящего то я вижу в строке IF %%B LSS 10 (SET Db=0%%B) ELSE (SET Db=%%B) правильные значения.
Подскажите что делаю не так.