Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/244: Рейтинг темы: голосов - 244, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 15.03.2013
Сообщений: 18
1

Удаление файлов старше 3-х дней

01.12.2015, 12:15. Показов 51157. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть папка, в которую каждый день акронис складывает новые образы. Хочу сделать так, чтобы батник чистил файлы "*.tib" которые устарели относительно текущей даты на 3 дня?
Если что, то файлы имеют такие имена:
.....
MyBackup30.11.2015.tib
MyBackup01.12.20151.tib
.....
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2015, 12:15
Ответы с готовыми решениями:

Удаление файлов старше 10-ти дней
Приветствую Вас пользователи! Помогите с решением следующей задачи. Настроено ежедневное резервное...

Архивация файлов и удаление архивов старше семи дней
Ребята помогите сделать скрипт, плз. Суть такая - есть каталог, который сканируется на предмет...

Удаление папок старше n дней
Доброго времени суток! Помогите написать батник который делал бы следующее в заданный папках...

Архивация лог-файлов старше трёх дней
Необходимо ежедневно архивировать лог файлы с датой ранее 3 дней от текущей даты в ту же папку, где...

12
sov44
01.12.2015, 15:39
  #2

Не по теме:

Цитата Сообщение от aleksei1988 Посмотреть сообщение
Есть папка, в которую каждый день акронис складывает новые образы. Хочу сделать так, чтобы батник чистил файлы "*.tib" которые устарели относительно текущей даты на 3 дня?
если не ошибаюсь, количество бэкапов настраивается в акронисе

0
1 / 1 / 0
Регистрация: 15.03.2013
Сообщений: 18
03.12.2015, 15:08  [ТС] 3
Не нашёл такого в настройках
0
1 / 1 / 0
Регистрация: 15.03.2013
Сообщений: 18
22.12.2015, 13:02  [ТС] 4
Возвращаясь к моему вопросу, нашёл в интернете один из вариантов решения. В локальной папки данный батник удаляет все файлы за исключением последних трёх.
Windows Batch file
1
2
3
4
@echo off
set maxb=3
cd /d C:\Users\User\Desktop\Новая
for /f "skip=%maxb%" %%i in ('dir /o:-d /a:-d /b *.txt') do del %%i
Когда пытался исправить его, чтобы проделать то же самое в расшаренной папке в локалке, то ничего не получается. Скорее всего проблема с атрибутами и способом указания пути. Гуру, выручайте.

Windows Batch file
1
2
3
4
@echo off
set maxb=3
cd /d "\\192.168.0.3\обмен\подпапка\BackUp"
for /f "skip=%maxb%" %%i in ('dir /o:-d /a:-d /b *.txt') do del %%i
0
sov44
22.12.2015, 13:40
  #5

Не по теме:

Цитата Сообщение от aleksei1988 Посмотреть сообщение
Не нашёл такого в настройках
http://www.winblog.ru/admin/11... 31101.html

0
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
22.12.2015, 14:01 6
Windows Batch file
1
forfiles /p "\\192.168.0.3\обмен\подпапка\BackUp" /d -3 /m *.tib /c "cmd /c del @file"
Добавлено через 10 минут
Стоп, так не получится
А вот так должно

Windows Batch file
1
2
pushd "\\192.168.0.3\обмен\подпапка\BackUp" && (forfiles /d -3 /m *.tib /c "cmd /c del /f /q @file")
popd
2
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 1
13.02.2016, 22:27 7
Здравствуйте .
Скажите пожалуйста , подходит этот код , или нет , если его использовать для удаление папок с датой ( и содержимым внутри этих папок) ?
Гуглил , искал , пробовал другие коды не нашел рабочих . Может кто поможет или перенаправит на ветку с рабочим кодом ?
Спасибо.
0
3460 / 1998 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
15.02.2016, 02:03 8
Цитата Сообщение от varsis Посмотреть сообщение
Может кто поможет..?


Код для удаления папок старше 3-х дней со всем их содержимым из каталога "C:\Test":
Windows Batch file
1
@forfiles /p "C:\Test" /d -3 /c "cmd /c if /i @isdir equ true rd /q /s @path"
.
2
887 / 189 / 16
Регистрация: 18.07.2011
Сообщений: 260
15.02.2016, 14:17 9
Цитата Сообщение от aleksei1988 Посмотреть сообщение
Когда пытался исправить его, чтобы проделать то же самое в расшаренной папке в локалке, то ничего не получается.
Цитата Сообщение от vavun Посмотреть сообщение
А вот так должно
Ни pushd, ни cd не умеют переходить в сетевые папки.
Оставайтесь в текущей папке и из неё выполняйте все операции.
Как-то так (не проверял):
Windows Batch file
1
2
3
@echo off
set maxb=3
for /f "skip=%maxb%" %%i in ('dir /o:-d /a:-d /b \\192.168.0.3\обмен\подпапка\BackUp\*.txt') do del %%i
0
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
15.02.2016, 14:30 10
Цитата Сообщение от gimntut Посмотреть сообщение
Ни pushd, ни cd не умеют переходить в сетевые папки.
С каких пор pushd не умеет сетевые папки ?
0
3460 / 1998 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
15.02.2016, 15:37 11
Цитата Сообщение от gimntut Посмотреть сообщение
Ни pushd, ни cd не умеют переходить в сетевые папки.


Команда "PUSHD" "умеет".
Даже для этой команды (как и для команды "DIR" и некоторых других команд) существует специфическое сообщение об ошибке "Не найден сетевой путь."
Не поддерживает команда "PUSHD" только UNC-пути, "путая" их как раз с сетевыми путями.

А вот команда "CD" действительно этого не "умеет" и, наоборот, "путает" сетевые пути с UNC-путями, которые она также не поддерживает.

Команда "DIR" поддерживает и сетевые, и UNC-пути.

Вот такая "коллизия".

Пример:

Код
D:\>pushd \\192.168.0.3\обмен\
Не найден сетевой путь.

D:\>cd/d \\192.168.0.3\обмен\
"\\192.168.0.3\обмен\"
CMD.EXE не поддерживает пути UNC в качестве текущей папки.

D:\>dir \\192.168.0.3\обмен\
Не найден сетевой путь.

D:\>pushd \\?\C:\
Не найден сетевой путь.

D:\>cd/d \\?\C:\
"\\?\C:\"
CMD.EXE не поддерживает пути UNC в качестве текущей папки.

D:\>dir \\?\C:\
 Том в устройстве \\?\C: имеет метку OS
 Серийный номер тома: DCEE-1700

 Содержимое папки \\?\C:

20.03.2014  14:49    <DIR>          AsusVibeData
20.03.2014  14:48    <DIR>          eSupport
16.04.2015  11:04    <DIR>          Program Files
03.02.2016  20:11    <DIR>          Program Files (x86)
17.07.2014  08:55    <DIR>          Users
18.05.2015  19:24    <DIR>          WebStorage
02.10.2015  04:20    <DIR>          Windows
               0 файлов              0 байт
               7 папок               0 байт свободно

D:\>
2
0 / 0 / 0
Регистрация: 28.06.2016
Сообщений: 1
26.04.2017, 11:53 12
А почему вы пишите комманду без " . Ведь имено " с 2 сторон пути позволяет писать длинные пути папки. pushd "\\192.168.0.3\обмен"
0
0 / 0 / 0
Регистрация: 04.11.2012
Сообщений: 12
22.11.2017, 02:10 13
Просто в forfiles сетевой путь подставить нельзя Использую pushd из примера vavun
Windows Batch file
1
2
pushd "\\192.168.0.3\обмен\подпапка\BackUp" && (forfiles /d -3 /m *.tib /c "cmd /c del /f /q @file")
popd
Но возник вопрос. Делаю ежедневные бэкапы. Если, например, бэкапы не делались по каким-то причинам, то через три дня при выполнении этого кода в папке бэкапов будет пусто. Как-то можно сделать так, чтобы в папке оставалось минимум три файла?
0
22.11.2017, 02:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2017, 02:10
Помогаю со студенческими работами здесь

Перемещение файлов старше Х дней с сохранением структуры каталога
Доброго дня, уважаемые гуру :) Есть задача переместить старые файлы, сохранив структуру папок....

Создать задачу по удалению всех архивов старше 10 дней
Здравствуйте, возник такой вопрос ,а можно ли сделать задачу по удаления с жесткого диска все...

Удаление папок старше недели
Добрый день У меня есть простенький БАТ-файл для резервного копирования xcopy D:\CRM\*.*...

Перемещение файлов старше 30 минут
Необходим батник, который проверяет файлы(их всегда несколько) в определенной папке(папка 1) и если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru