|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] CMD-скрипт для удаления временных файлов |
|
|
CMD/BAT - [решено] CMD-скрипт для удаления временных файлов
|
Пользователь Сообщения: 117 |
Профиль | Отправить PM | Цитировать Задача в следующем. Есть папка, в которой (в самой и в ее подпапках) помимо всего прочего много временных файлов вида *.tmp и ~$*.*
Нужно, чтобы эти временные файлы автоматически удалялись, если становятся старше 14 дней. Хочу решить эту задачу с помощью CMD-скрипта и утилиты forfiles.exe. На данный момент код такой: CLS @ECHO OFF forfiles.exe /P D:\Folder\ /S /M *.tmp /D -14 /C "cmd if @isdir==FALSE /C del \"@file\"" forfiles.exe /P D:\Folder\ /S /M ~$*.* /D -14 /C "cmd if @isdir==FALSE /C del \"@file\"" Например, файл D:\Folder\My SubFolder1\My SubFolder2\My Temp File.tmp будет выглядеть как D:\Folder\My SubFolder1\My SubFolder2\My Проблема 2. Команда del пропускает файлы с атрибутом "скрытый". Если же запускать ее с параметром -a:h, то она будет, наоборот, удалять скрытые файлы и пропускать файлы без атрибута "скрытый". Пробовал также del /f /q /a:h-h, чтобы удалялись и скрытые, и не скрытые файлы. Не помогло. Аналогичная ситуация с файлами, у которых атрибут "системный". Хотелось бы узнать: есть ли возможность удаления файлов с ЛЮБЫМИ атрибутами? Проблема 3. Не могу задать несколько масок файлов для forfiles.exe (параметр /M). Хотелось бы объединить 3 и 4 строки скрипта в одну и получить что-то вроде этого: CLS @ECHO OFF forfiles.exe /P D:\Folder\ /S /M *.tmp;~$*.* /D -14 /C "cmd if @isdir==FALSE /C del \"@file\"" Буду благодарен за любую помощь. |
|
Отправлено: 15:29, 17-09-2010 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата old_nick:
|
|
Отправлено: 18:59, 17-09-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2727
|
Профиль | Отправить PM | Цитировать forfiles.exe -pC:\Tmp\ -m*.tmp -d-14 -s -c"CMD /C del /AR /A ""@FILE"""
Длинные имена при этом не обрезаются. Удаляются все файлы с о всеми атрибутами. Несколько масок одновременно обработать не получилось, если в строке указать несколько ключей -m, обрабатывается последний. |
------- Отправлено: 15:12, 18-09-2010 | #3 |
Ветеран Сообщения: 2727
|
Профиль | Отправить PM | Цитировать Получается обработать список расширений файлов в одну строку, каких-то общих символов в имени файла
А вот задать список типа *.tmp ~*.* мне не удалось. Вероятно, гуру Amel27 смог бы победить эту проблему
|
------- Отправлено: 14:10, 19-09-2010 | #4 |
Пользователь Сообщения: 117
|
Профиль | Отправить PM | Цитировать Iska, Спасибо, проблема 2 решена. Метод del *.* /AR /A /Q работает!
megaloman По поводу поста #3. Между параметром и его значением надо ставить пробел, иначе выскакивает ошибка "Неправильный параметр или аргумент" (т.е. надо писать не -pC:\Tmp\, а p C:\Tmp\) К сожалению, длинные имена по-прежнему обрезаются (см. вложение screenshot1.gif) По поводу поста #4. Этот код вместе с временными *.tmp-файлами также будет вычищать из папки документы Word (*.doc) и таблицы Excel (*.xls). А это мне не надо. У меня НЕ временная папка, а папка с файлами пользователей, в которой вместе с нужными документами лежат временные файлы. |
|
Последний раз редактировалось old_nick, 11-09-2012 в 17:31. Отправлено: 19:37, 19-09-2010 | #5 |
Ветеран Сообщения: 2727
|
Профиль | Отправить PM | Цитировать Цитата:
Цитата:
Здесь список файлов, с которыми мой батник успешно справился Вот хелп от "моего" forfiles.exe P.S. Похоже, нашел я и Ваш вариант FORFILES.exe Там в хелпе параметры через / Похоже, с длинными именами он работать не хочет. Да и вообще, лучше бы обходится без нестандартных средств, что поставляются с системой. |
||
------- Последний раз редактировалось megaloman, 19-09-2010 в 22:04. Отправлено: 21:32, 19-09-2010 | #6 |
Пользователь Сообщения: 117
|
Профиль | Отправить PM | Цитировать megaloman, спасибо! Действительно, по той ссылке, что Вы дали, лежит версия файла 5.0.2010.1 размером 12048 байт. У меня же была версия 5.2.3790.0, весившая 48640 байт. С сайта Microsoft почему-то скачать не получалось и, погуглив, я взял отсюда.
Проблемы 1 и 2 решены. А 3-я по сути даже не проблема, просто хотелось сделать скрипт компактнее и изящнее. Но если кто-то знает и ее решение - будет интересно узнать. Будем считать тему закрытой. Большое спасибо за помощь! |
Отправлено: 00:13, 20-09-2010 | #7 |
Пользователь Сообщения: 88
|
Профиль | Отправить PM | Цитировать Народ, всем драсте, нужен простой батник, ищущий и удаляющий все временные файлы (tmp) в определенной папке без всяких там изысков Поделитесь? Спасибо!
|
Отправлено: 12:59, 23-09-2010 | #8 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось El Sanchez, 23-09-2010 в 20:18. Причина: очепятка Отправлено: 13:26, 23-09-2010 | #9 |
Пользователь Сообщения: 88
|
Профиль | Отправить PM | Цитировать El Sanchez, спасибо еще вопрос - если по тому пути есть еще и подпапки? как заставить поискать и в них?
|
Отправлено: 14:17, 23-09-2010 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Скрипт для удаления старых файлов и папок из определенной папки | avfiga | Скриптовые языки администрирования Windows | 71 | 07-01-2023 18:50 | |
CMD/BAT - [решено] Скрипт для удаления файлов. | Bond01 | Скриптовые языки администрирования Windows | 8 | 01-10-2010 11:02 | |
VBS/WSH/JS - [решено] WSH скрипт для удаления файлов (логика скрипта внутри) | Francyz | Скриптовые языки администрирования Windows | 11 | 25-05-2010 11:22 | |
Любой язык - нужен скрипт для удаления всех файлов кроме нужных для запуска Windows XP | Dark Ange1 | Скриптовые языки администрирования Windows | 11 | 07-03-2010 13:34 | |
Проблема удаления временных файлов Интернета | SAToNA | Microsoft Windows 2000/XP | 0 | 15-02-2006 07:31 |
|