![]() |
батник для автоматического удаления сетевых папок
помогите, плиз, написать батник ,цель которого удалить содержимое сетевых папок, но не сами папки, и удалить содержимое за неделю до сегодняшнего дня. Например, сегодня 16, значит в папках надо удалить все файлы до 9.10 , а с 10-16 не трогать .
просто в домене есть папка \\agp.local\docs\обмен. В этом обмене есть папки пользователей.Папка иванов, петров,сидоров ... и прочее. Вот как раз-таки содержимое этих папок , но не сами папки иванов, петров сидоров... удалить за неделю до сегодняшнего дня, все содержимое созданное от 10-16 оставить. Просто это действие надо как-то оптимизировать. В этих папках пользователи накапливают всякую срань, которая занимает место на серваке и поэтому надо как-то очищать место и каждый понедельник надо чистить за прошлую неделю. |
а если в папках иванов, петров содержаться ещё папки? Что делать с ними?
|
какой сервак? Почему именно cmd?
Вот на PS (удаляются все файлы которые последний раз изменялись более 7 дней назад) Код:
Set-location "\\agp.local\docs\обмен" Цитата:
|
Имхо на cmd есть два решения, одно простое второе сложное.
1. Простое заключается в запуске по понедельникам (это через шедулер) батник вида: Код:
@echo off 2. Второй способ откровенно геморройный и не дает никакой гарантии что будут удалены ТОЛЬКО ненужные фалы. Сам писать не буду (не помню ключей на память) но суть такова: сканируем папки всех пользователей через DIR, сортируем по дате последнего использования и сносим те которые не использовались больше недели (сначала удаляем файлы потом папки если те являются пустыми). Сразу скажу этот способ я года три назад пытался реализовать, но умения по-видимому не хватило, и терпение лопнуло, и (что было решающим фактором) работу сменил. Цитата Molchune: удаляются все файлы которые последний раз изменялись более 7 дней назад » Файл может не изменяться но использоваться. Обычно пользователи не дезассемблируют *.exe но продолжают их запускать. |
sunnykey, папки которые в иванов, петров, сидоров тоже удаляются.
должно быть так \\agp.local\docs\обмен\иванов\ все подпапки иванова удалять согласно времени. Molchune, сервак пока 2003, на новый денЯг нет)) но удалять я буду со своего компа, на моем ХР. Elven, Цитата:
батник я запускаю не на серваке , а со своего компа, хотя я могу удалено зайти на сервер. А можете подробно рассказать как привязать батник for к dir. ну вот скрин этой папки я новичок пока в системном администрировании, ещё только читаю, да на своих ошибках учусь. но не понимаю чем PS отличается от cmd. Команды одни и теже. |
Цитата:
|
Конечный батник будет выглядеть приблизительно так
Код:
@echo off |
Что за «%%usrname»?!
|
Цитата Iska:
Что за «%%usrname»?! » Просто переменная, вместо нее можно вполне впихнуть %%direcrtoryname (что как теперь выяснилось было бы правильнее) и тоже по идее будет работать. Обычно если батник состоит больше чем из трех строчек я предпочитаю использовать переменные хоть что-то значащие, а то потом никакие комментарии не помогут разобраться зачем санитары повязали милиции, откуда взялись пожарные и при чем тут вообще мертвый попугай. |
|
Пофиксил. (см. правку поста #7)
|
Цитата:
лучше последнюю строку заменить на такую Код:
dir | ? {$_.Attributes -eq [System.IO.FileAttributes]::Directory} | ` |
Цитата:
Просто у меня тоже как раз папка обмена и зачастую они сами там чет делают... я просто уже года 3 туда не лазил.. Пользователи не ругаются (правда там исключения для пары папок есть) Но размер маленький. + еще папка для ежедневного обмена. это вообще просто маза туда время от времени что нить мощное заливают, а через день уже пусто. |
друзья, я завтра на работе сделаю сначала бэкап папок, а потом попробую удалять как батником, так и PS поставлю. О результатах напишу. Но так чем cmd от PS отличается?))
|
Elven, батник что-то не запускается. я даже на диск С не могу выйти
sunnykey, поставил себе ps , но при запуске выдаются какие то красные строки |
Ну вот попробовал у себя
Код:
Set-location "\\NameServer\Folder1\Folder2" Посмотрите мб там длина получается более 255 символов. И путь укажи не через имя домена. Ну и результат еще раз в студию |
Включи режим отображения команд в начале батника @echo on и запусти прямо из командной строки. Либо он не видит по каким-то причинам шары, либо таки грабли с рускосимвольными папками.
кстати переход на другой диск из командной строки не так делается. Код:
с: Код:
cd /d c:\ |
Molchune, Elven,
пока что-то ошибки с кракозябрами мучают. Хотел скринами показать, но подумал, что видео на 1 минуту целесообразнее. Тут интерактивно видно, что я делаю http://vimple.ru/0bed8471aee24829bac1c67c2fd8a30a |
Вложений: 1
Полюбовался на 14 секундный ролик о том что видео недоступно. Если проблемы с кракозябрами значит дело все же в кодировках. Держи готовый:
Файл 105667 |
чертов вимпл и правда видео не загрузил. ладно вот яндекс
http://video.yandex.ru/users/jerrymaya/view/16/ |
Цитата:
Цитата:
Код:
New-PSDrive -Name "X" -PSProvider FileSystem -Root "\\NameServer\Folder1\Folder2" |
vanoman, с видео понятно. теперь все же скачай файл прикрепленный к моему предыдущему сообщению и запусти его, таким же образом. И что бы не мучить себя с переходом в нужный каталог cmd можно прописать в самом тотальном командире (внизу есть такая классная строчечка) тогда он запустит командную строку в текущем каталоге, если это возможно.
|
все сработало. решено
|
Время: 20:14. |
Время: 20:14.
© OSzone.net 2001-