|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] батник для автоматического удаления сетевых папок |
|
|
CMD/BAT - [решено] батник для автоматического удаления сетевых папок
|
Ветеран Сообщения: 549 |
Профиль | Отправить PM | Цитировать помогите, плиз, написать батник ,цель которого удалить содержимое сетевых папок, но не сами папки, и удалить содержимое за неделю до сегодняшнего дня. Например, сегодня 16, значит в папках надо удалить все файлы до 9.10 , а с 10-16 не трогать .
просто в домене есть папка \\agp.local\docs\обмен. В этом обмене есть папки пользователей.Папка иванов, петров,сидоров ... и прочее. Вот как раз-таки содержимое этих папок , но не сами папки иванов, петров сидоров... удалить за неделю до сегодняшнего дня, все содержимое созданное от 10-16 оставить. Просто это действие надо как-то оптимизировать. В этих папках пользователи накапливают всякую срань, которая занимает место на серваке и поэтому надо как-то очищать место и каждый понедельник надо чистить за прошлую неделю. |
|
Отправлено: 21:00, 16-10-2013 |
Пользователь Сообщения: 124
|
Профиль | Отправить PM | Цитировать а если в папках иванов, петров содержаться ещё папки? Что делать с ними?
|
------- Отправлено: 12:34, 17-10-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать какой сервак? Почему именно cmd?
Вот на PS (удаляются все файлы которые последний раз изменялись более 7 дней назад) Set-location "\\agp.local\docs\обмен" $timex = get-date $timex = $timex.AddDays(-7) dir | where {$_.lastwritetime -le $timex} | del -Recurse -force Цитата sunnykey:
|
|
Отправлено: 12:42, 17-10-2013 | #3 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Имхо на cmd есть два решения, одно простое второе сложное.
1. Простое заключается в запуске по понедельникам (это через шедулер) батник вида: @echo off {for /f %%usrname [в зависимости от доп условий см.*] (} rd /s /q "\\agp.local\docs\обмен\%%usrname\Прошлая неделя" ren "\\agp.local\docs\обмен\%%usrname\Текущая неделя" "\\agp.local\docs\обмен\%username%\Прошлая неделя" md "\\agp.local\docs\обмен\%%usrname\Текущая неделя" ) 2. Второй способ откровенно геморройный и не дает никакой гарантии что будут удалены ТОЛЬКО ненужные фалы. Сам писать не буду (не помню ключей на память) но суть такова: сканируем папки всех пользователей через DIR, сортируем по дате последнего использования и сносим те которые не использовались больше недели (сначала удаляем файлы потом папки если те являются пустыми). Сразу скажу этот способ я года три назад пытался реализовать, но умения по-видимому не хватило, и терпение лопнуло, и (что было решающим фактором) работу сменил. Цитата Molchune: удаляются все файлы которые последний раз изменялись более 7 дней назад » Файл может не изменяться но использоваться. Обычно пользователи не дезассемблируют *.exe но продолжают их запускать. |
Отправлено: 13:05, 17-10-2013 | #4 |
Ветеран Сообщения: 549
|
Профиль | Отправить PM | Цитировать sunnykey, папки которые в иванов, петров, сидоров тоже удаляются.
должно быть так \\agp.local\docs\обмен\иванов\ все подпапки иванова удалять согласно времени. Molchune, сервак пока 2003, на новый денЯг нет)) но удалять я буду со своего компа, на моем ХР. Elven, Цитата Elven:
батник я запускаю не на серваке , а со своего компа, хотя я могу удалено зайти на сервер. А можете подробно рассказать как привязать батник for к dir. ну вот скрин этой папки я новичок пока в системном администрировании, ещё только читаю, да на своих ошибках учусь. но не понимаю чем PS отличается от cmd. Команды одни и теже. |
||
Последний раз редактировалось vanoman, 08-12-2013 в 15:30. Отправлено: 15:43, 17-10-2013 | #5 |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать Цитата vanoman:
|
|
Отправлено: 16:36, 17-10-2013 | #6 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Конечный батник будет выглядеть приблизительно так
@echo off rem %%usrname - переменная указывающая имя папки for /f %%usrname in (dir /B /A:D \\agp.local\docs\обмен) do ( rd /s /q "\\agp.local\docs\обмен\%%usrname\Прошлая неделя" ren "\\agp.local\docs\обмен\%%usrname\Текущая неделя" "\\agp.local\docs\обмен\%username%\Прошлая неделя" md "\\agp.local\docs\обмен\%%usrname\Текущая неделя" ) |
Последний раз редактировалось Elven, 18-10-2013 в 09:41. Причина: добавил комментарий Отправлено: 17:44, 17-10-2013 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Что за «%%usrname»?!
|
Отправлено: 19:42, 17-10-2013 | #8 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
Что за «%%usrname»?! » Просто переменная, вместо нее можно вполне впихнуть %%direcrtoryname (что как теперь выяснилось было бы правильнее) и тоже по идее будет работать. Обычно если батник состоит больше чем из трех строчек я предпочитаю использовать переменные хоть что-то значащие, а то потом никакие комментарии не помогут разобраться зачем санитары повязали милиции, откуда взялись пожарные и при чем тут вообще мертвый попугай. |
Отправлено: 20:54, 17-10-2013 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 22:37, 17-10-2013 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Нужен батник для сканирования папок и записи результатов в файл | ruslaw | Скриптовые языки администрирования Windows | 5 | 24-08-2013 14:33 | |
VBS/WSH/JS - Скрипт для копирования из 4 сетевых папок в одну | Wsador | Скриптовые языки администрирования Windows | 20 | 20-05-2013 15:43 | |
CMD/BAT - [решено] Нужен батник для сканирования папок и записи результатов в файл | Nun-Nun | Скриптовые языки администрирования Windows | 7 | 22-09-2010 15:23 | |
CMD/BAT - [решено] Батник для изменения сетевых настроек. | dvassilyev | Скриптовые языки администрирования Windows | 12 | 12-04-2010 16:40 | |
CMD/BAT - Батник для удаления следов usb из реестра | zedco | Скриптовые языки администрирования Windows | 0 | 26-03-2010 17:30 |
|