Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

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

Аватара для vanoman

Ветеран


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

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


помогите, плиз, написать батник ,цель которого удалить содержимое сетевых папок, но не сами папки, и удалить содержимое за неделю до сегодняшнего дня. Например, сегодня 16, значит в папках надо удалить все файлы до 9.10 , а с 10-16 не трогать .
просто в домене есть папка \\agp.local\docs\обмен. В этом обмене есть папки пользователей.Папка иванов, петров,сидоров ... и прочее. Вот как раз-таки содержимое этих папок , но не сами папки иванов, петров сидоров... удалить за неделю до сегодняшнего дня, все содержимое созданное от 10-16 оставить.
Просто это действие надо как-то оптимизировать. В этих папках пользователи накапливают всякую срань, которая занимает место на серваке и поэтому надо как-то очищать место и каждый понедельник надо чистить за прошлую неделю.

Отправлено: 21:00, 16-10-2013

 

Аватара для sunnykey

Пользователь


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

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


а если в папках иванов, петров содержаться ещё папки? Что делать с ними?

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:34, 17-10-2013 | #2



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

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


Старожил


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

Профиль | Отправить 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:
cmd умри, powershell живи »
Стопудово. У всех уже в большинстве стоит не ниже Win2008 пора бы PS уже использовать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:42, 17-10-2013 | #3


Аватара для Elven

Ветеран


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

Профиль | Сайт | Отправить 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\Текущая неделя"
)
* если имена папок соответствуют доменным учеткам то запускаем батник на файлсервере с запросом FOR через DSQUERY USER, если они названы "как понравилось" точно так же с файлсервера но привязываем FOR к DIR из каталога "Обмен".

2. Второй способ откровенно геморройный и не дает никакой гарантии что будут удалены ТОЛЬКО ненужные фалы. Сам писать не буду (не помню ключей на память) но суть такова: сканируем папки всех пользователей через DIR, сортируем по дате последнего использования и сносим те которые не использовались больше недели (сначала удаляем файлы потом папки если те являются пустыми).
Сразу скажу этот способ я года три назад пытался реализовать, но умения по-видимому не хватило, и терпение лопнуло, и (что было решающим фактором) работу сменил.

Цитата Molchune:
удаляются все файлы которые последний раз изменялись более 7 дней назад »
Файл может не изменяться но использоваться. Обычно пользователи не дезассемблируют *.exe но продолжают их запускать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:05, 17-10-2013 | #4


Аватара для vanoman

Ветеран


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

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


sunnykey, папки которые в иванов, петров, сидоров тоже удаляются.
должно быть так
\\agp.local\docs\обмен\иванов\ все подпапки иванова удалять согласно времени.
Molchune, сервак пока 2003, на новый денЯг нет)) но удалять я буду со своего компа, на моем ХР.
Elven,
Цитата Elven:
* если имена папок соответствуют доменным учеткам то запускаем батник на файлсервере с запросом FOR через DSQUERY USER, если они названы "как понравилось" точно так же с файлсервера но привязываем FOR к DIR из каталога "Обмен". »
походу они не соотв доменным учеткам. Там можно создать папку с любым названием .
батник я запускаю не на серваке , а со своего компа, хотя я могу удалено зайти на сервер. А можете подробно рассказать как привязать батник for к dir.
ну вот скрин этой папки

я новичок пока в системном администрировании, ещё только читаю, да на своих ошибках учусь. но не понимаю чем PS отличается от cmd. Команды одни и теже.

Последний раз редактировалось vanoman, 08-12-2013 в 15:30.


Отправлено: 15:43, 17-10-2013 | #5


Старожил


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

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


Цитата vanoman:
Molchune, сервак пока 2003, на новый денЯг нет)) но удалять я буду со своего компа, на моем ХР. »
На XP уже давно PS накатывается обновлением. Я бы все таки поставил. И посмотрел бы. И там все таки есть GUI с ним более практичней получается
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:36, 17-10-2013 | #6


Аватара для Elven

Ветеран


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

Профиль | Сайт | Отправить 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\Текущая неделя"
)
Запускать по идее можно и с твоего компа, однако лучше запускать с сервака и указать абсолютный путь от буквы диска (вместо "\\agp.local\docs\обмен\" вставить например "D:\shares\agp.local\docs\обмен\"). И будь осторожен с рускосимвольными названиями папок, обрати внимание на кодировку.

Последний раз редактировалось Elven, 18-10-2013 в 09:41. Причина: добавил комментарий

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:44, 17-10-2013 | #7


Ветеран


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

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


Что за «%%usrname»?!
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:42, 17-10-2013 | #8


Аватара для Elven

Ветеран


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

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


Цитата Iska:
Что за «%%usrname»?! »
Просто переменная, вместо нее можно вполне впихнуть %%direcrtoryname (что как теперь выяснилось было бы правильнее) и тоже по идее будет работать. Обычно если батник состоит больше чем из трех строчек я предпочитаю использовать переменные хоть что-то значащие, а то потом никакие комментарии не помогут разобраться зачем санитары повязали милиции, откуда взялись пожарные и при чем тут вообще мертвый попугай.

Отправлено: 20:54, 17-10-2013 | #9


Ветеран


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

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


Цитата Elven:
а то потом никакие комментарии не помогут разобраться зачем санитары повязали милиции, откуда взялись пожарные и при чем тут вообще мертвый попугай. »
Вот-вот. Потому как уже сейчас в:
Цитата Elven:
Конечный батник »
нет определения этой переменной.

Отправлено: 22:37, 17-10-2013 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход