dahiko
20-05-2016, 07:46
Всем привет!
Имеется два батника:
1 - Удаляет файлы с расширением .tib с датой создания более 8 дней в папке E:\Backup, но не удаляет файлы во вложенных папках.
@echo off
setlocal enabledelayedexpansion
rem age files in days
set N=8
set MASK=*.tib
set OTKUDA=E:\Backup
call :raschet %date% days_to_today
pushd %OTKUDA%
for /f "tokens=*" %%a in ('dir /b /a:-d %MASK%') do (
set filedate=%%~ta
call :raschet !filedate:~0,10! days_to_date_of_file
set /a raznitsa=%days_to_today%-!days_to_date_of_file!
if !raznitsa! gtr %N% del /q "%%a"
)
popd
exit
:raschet
for /f "delims=. tokens=1-3" %%a in ('echo %~1') do (
set /a years=%%c*365+%%c/4
set /a prev_year=%%c-1
set /a result_year=%%c/4
set /a result_prev_year=!prev_year!/4
set /a vis=!result_year!-!result_prev_year!
if !vis!==1 (
if %%b==01 set /a years=!years!-1
if %%b==02 set /a years=!years!-1
)
if %%b==01 set months=0
if %%b==02 set months=31
if %%b==03 set months=59
if %%b==04 set months=90
if %%b==05 set months=120
if %%b==06 set months=151
if %%b==07 set months=181
if %%b==08 set months=212
if %%b==09 set months=243
if %%b==10 set months=273
if %%b==11 set months=304
if %%b==12 set months=334
set days=%%a
set firstsym=!days:~0,1!
if !firstsym!==0 set days=!days:~1,1!
set /a %~2=!years!+!months!+!days!
)
2- Перезагружается ПК с задержкой 120 секунд.
shutdown.exe -r -t 120
Помогите сделать следующее:
1. Объединить два батника в один. Чтобы после удаления файлов происходила перезагрузка.
2. Заставить батник удалить файлы не только в папке backup, но и содержимое во вложенных папках с названием Folder1 и Folder2. Условие удаления одинаковое для всех папок - файлы с расширением .tib с датой создания более 8 дней
Заранее спасибо!
Имеется два батника:
1 - Удаляет файлы с расширением .tib с датой создания более 8 дней в папке E:\Backup, но не удаляет файлы во вложенных папках.
@echo off
setlocal enabledelayedexpansion
rem age files in days
set N=8
set MASK=*.tib
set OTKUDA=E:\Backup
call :raschet %date% days_to_today
pushd %OTKUDA%
for /f "tokens=*" %%a in ('dir /b /a:-d %MASK%') do (
set filedate=%%~ta
call :raschet !filedate:~0,10! days_to_date_of_file
set /a raznitsa=%days_to_today%-!days_to_date_of_file!
if !raznitsa! gtr %N% del /q "%%a"
)
popd
exit
:raschet
for /f "delims=. tokens=1-3" %%a in ('echo %~1') do (
set /a years=%%c*365+%%c/4
set /a prev_year=%%c-1
set /a result_year=%%c/4
set /a result_prev_year=!prev_year!/4
set /a vis=!result_year!-!result_prev_year!
if !vis!==1 (
if %%b==01 set /a years=!years!-1
if %%b==02 set /a years=!years!-1
)
if %%b==01 set months=0
if %%b==02 set months=31
if %%b==03 set months=59
if %%b==04 set months=90
if %%b==05 set months=120
if %%b==06 set months=151
if %%b==07 set months=181
if %%b==08 set months=212
if %%b==09 set months=243
if %%b==10 set months=273
if %%b==11 set months=304
if %%b==12 set months=334
set days=%%a
set firstsym=!days:~0,1!
if !firstsym!==0 set days=!days:~1,1!
set /a %~2=!years!+!months!+!days!
)
2- Перезагружается ПК с задержкой 120 секунд.
shutdown.exe -r -t 120
Помогите сделать следующее:
1. Объединить два батника в один. Чтобы после удаления файлов происходила перезагрузка.
2. Заставить батник удалить файлы не только в папке backup, но и содержимое во вложенных папках с названием Folder1 и Folder2. Условие удаления одинаковое для всех папок - файлы с расширением .tib с датой создания более 8 дней
Заранее спасибо!