Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление файлов и перезагрузка

Ответить
Настройки темы
CMD/BAT - [решено] Удаление файлов и перезагрузка

Старожил


Сообщения: 415
Благодарности: 20

Профиль | Отправить PM | Цитировать


Всем привет!
Имеется два батника:
1 - Удаляет файлы с расширением .tib с датой создания более 8 дней в папке E:\Backup, но не удаляет файлы во вложенных папках.
Батник 1
@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 секунд.
Батник 2
shutdown.exe -r -t 120


Помогите сделать следующее:
1. Объединить два батника в один. Чтобы после удаления файлов происходила перезагрузка.
2. Заставить батник удалить файлы не только в папке backup, но и содержимое во вложенных папках с названием Folder1 и Folder2. Условие удаления одинаковое для всех папок - файлы с расширением .tib с датой создания более 8 дней

Заранее спасибо!

Отправлено: 07:46, 20-05-2016

 

Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Если это не относится к условию
Цитата dahiko:
с названием Folder1 и Folder2 »
, а надо именно
Цитата dahiko:
в папке E:\Backup, но не удаляет файлы во вложенных папках »
, то так:
Код: Выделить весь код
@echo off
cd /d "E:\Backup" && >nul 2>&1 forfiles /m *.tib /s /d -8 /c "cmd /c del /s /q @file"
shutdown.exe -r -t 120
exit
.
Да, и здесь и в вашем коде фигурирует дата изменения файла, хотя в условии - создания, предположил что не важно.

Отправлено: 11:05, 20-05-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 415
Благодарности: 20

Профиль | Отправить PM | Цитировать


Цитата alpap:
cd /d "E:\Backup" && >nul 2>&1 forfiles /m *.tib /s /d -8 /c "cmd /c del /s /q @file" »
Так он удалит во всех подпапках, но в папке backup есть и другие папки помимо folder1 и folder2, которые чистить не надо.

Отправлено: 11:12, 20-05-2016 | #3


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Тогда так:
Код: Выделить весь код
@echo off
for %%a in ("E:\Backup" "E:\Backup\Folder1" "E:\Backup\Folder2") do (
 pushd "%%~a" && >nul 2>&1 forfiles /m *.tib /d -8 /c "cmd /c del /s /q @file"
 popd
)
shutdown.exe -r -t 120
exit
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:21, 20-05-2016 | #4


Старожил


Сообщения: 415
Благодарности: 20

Профиль | Отправить PM | Цитировать


Цитата alpap:
Тогда так: »
Работает, спасибо большое!!!

Отправлено: 15:57, 20-05-2016 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление файлов и перезагрузка

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удаление файлов нулевого размера, а затем удаление пустых каталогов ilyadud Скриптовые языки администрирования Windows 5 25-08-2012 10:57
VBS/WSH/JS - [решено] Удаление файлов по сети старше 7 дней, оставлять не менее 10 файлов white155 Скриптовые языки администрирования Windows 6 04-01-2012 00:42
CMD/BAT - Удаление старых файлов по имени файлов Bиктор Скриптовые языки администрирования Windows 1 19-04-2010 03:37
Автоматическая перезагрузка компа сразу после начала загрузки файлов из интернета Milena29 Хочу все знать 1 02-12-2008 10:40
Ошибка - Потеря системных файлов и перезагрузка компьютера Druz Microsoft Windows 2000/XP 10 05-03-2008 05:26




 
Переход