|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помощь с написанием Bat. Перемещение и удаление файлов и папок старше N дней. |
|
CMD/BAT - [решено] Помощь с написанием Bat. Перемещение и удаление файлов и папок старше N дней.
|
Новый участник Сообщения: 3 |
Профиль | Отправить PM | Цитировать Подскажите пожалуйста, как реализовать следующую задачу:
Есть сетевое хранилище. В нем куча папок. В данный момент интересуют 5 из них. 4 папки используются для сканов с мфу, то есть пользователь отсканил документ, мфу его положил в свою папку(файлы могут быть как pdf так и jpg, все зависит от того как настроили при сканировании) В этих 4-х папка не должны оставаться файлы старше 3-х дней. Отсканировал-забрал, не забрал файл удалился. Нужно, чтоб планировщик запускал bat файл который, из указанной папки все файлы старше трех дней переносил в другую папку, затем из этой "другой папки" удалял все файлы старше 20 дней. При этом в папке могут быть созданы не только файлы с изображениями, так же там могу создать и папку, которую в свою очередь тоже нужно сначала переместить а уже потом удалить с теме же временными рамками что и у файлов. Для этого был написан вот такой батник: FORFILES /p "W:\Scan_Buh" /S /D -3 /C "cmd /c move @path "W:\EverybodyOld\Scan_Buh\"" :: Переносим все файлы и папки старше 3-х дней из папки Scan_Buh в папку EverybodyOld\Scan_Buh\ FORFILES /p "W:\EverybodyOld\Scan_Buh" /S /D -20 /C "cmd /c del @path /f /q" :: Удаляем все файлы старше 20-и дней из папки Scan_Buh FORFILES /p "W:\EverybodyOld\Scan_Buh" /S /C "cmd /c rd @path" :: Удаляем все пустые папки FORFILES /p "W:\Scan_Manager" /S /D -3 /C "cmd /c move @path "W:\EverybodyOld\Scan_Manager\"" :: Переносим все файлы и папки старше 3-дней из папки Scan_Manager в папку EverybodyOld\Scan_Manager\ FORFILES /p "W:\EverybodyOld\Scan_Manager" /S /D -20 /C "cmd /c del @path /f /q" :: Удаляем все файлы старше 20-и дней из папки Scan_Manager FORFILES /p "W:\EverybodyOld\Scan_Manager" /S /C "cmd /c rd @path" :: Удаляем все пустые папки Аналогично для остальных двух папок, меняется только путь к ним. Сейчас добавилась еще одна папка. В ней идет обмен документами, а так же несколько папок с которыми работают все. Тут может быть куча самых различных фалов, папок, подпапок... Из этой папке так же нужно перемещать все файлы\папки старше n дней в другую папку, затем по истечение n дней удалять из другой папки. НО есть несколько папок (в них соответственно файлы) которые трогать не нужно. К примеру есть w:\test в ней еще папки 1,2,3,4,5,6, и просто фалы лежащие в корне(кол-во файлов и папок может быть какое угодно и с каким угодно расширением), нужно чтоб всё что старше n дней переместилось в w:\arhiv\test кроме папки и всего содержимого в папка 2, 4,5 эти папки просто должны пропускаться (у них есть имя которое не изменяется, ведется работа только внутри этих папок) а потом уже из папки w:\arhiv\test так же все что старше 20 дней удалялось и файлы и папки в том числе. Как сделать исключение по названию папки? Чтоб при том же перемещении на определенную папку просто не обращалось внимания. У Forfiles есть ключ /м но это маска с которой он работает и не исключает. Все это на автомате, без каких либо запросов и ввода доп информации, задание ночью отработало и всё. Помогите разобраться и дополнить батник, а возможно и переделать совсем и оптимизировать. |
|
Отправлено: 17:10, 03-12-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Shurik006:
2. И с раздела на раздел перенос больших файлов никак не может работать быстро (если только у Вас не SSD или «большие файлы» в реальности легко помещаются целиком в кэш накопителя). Цитата Shurik006:
|
||
Отправлено: 20:47, 26-02-2019 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата Shurik006:
Цитата:
Цитата:
- Утром деньги, вечером стулья - А можно наоборот? - Можно, но деньги вперед! |
|||
------- Последний раз редактировалось YuS_2, 27-02-2019 в 06:00. Отправлено: 05:54, 27-02-2019 | #12 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата Iska:
Цитата YuS_2:
Значит навыдумывал зачем-то |
|||
Отправлено: 10:21, 27-02-2019 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать YuS_2, разве речь не про исключение файлов шла?
|
Отправлено: 19:03, 27-02-2019 | #14 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Т.е. человек начал отталкиваться от этого: Цитата Shurik006:
Никакими ключами этот алгоритм изменить невозможно. Ну, т.е. получить чистый move, даже в пределах одного диска, не получится, именно copy, а затем delete. Просто уточнил. |
||
------- Последний раз редактировалось YuS_2, 28-02-2019 в 07:26. Отправлено: 07:19, 28-02-2019 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
|
|
Отправлено: 06:10, 05-03-2019 | #16 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Физический перенос данных в пределах одного диска не осуществляется, при выполнении операции move, а в утилите просто вводит в заблуждение схожий по названию ключ... это и имелось в виду. Если заняться подробным описанием принципа работы файловой системы (как осуществляется перенос файлов в пределах одного диска, на разные диски, копирование, удаление, MFT таблицы и т.д.), это в пару строк не уместится, потому и не стал даже пытаться... ну, а если вдруг кому-то интересно, в интернете же можно поискать и почитать. Добавлено: Цитата Iska:
|
||
------- Последний раз редактировалось YuS_2, 05-03-2019 в 13:15. Отправлено: 10:34, 05-03-2019 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
Цитата YuS_2:
|
||
Отправлено: 14:49, 05-03-2019 | #18 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
------- Отправлено: 18:36, 05-03-2019 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
|
|
Отправлено: 00:18, 06-03-2019 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2012 R2 - [решено] Удаление файлов старше 100 дней | DJ Mogarych | Windows Server 2012/2012 R2 | 6 | 07-06-2014 02:16 | |
Любой язык - [решено] Удаление файлов старше N дней | DOCznet | Скриптовые языки администрирования Windows | 2 | 27-09-2012 11:42 | |
Любой язык - Удаление файлов старше 5 дней кроме указанного по имени. | Joni | Скриптовые языки администрирования Windows | 6 | 11-07-2012 11:18 | |
VBS/WSH/JS - [решено] Удаление файлов по сети старше 7 дней, оставлять не менее 10 файлов | white155 | Скриптовые языки администрирования Windows | 6 | 04-01-2012 00:42 | |
Прочее - удаление файлов старше 10 дней | admin666 | Общий по Linux | 1 | 23-07-2009 19:09 |
|