|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Удаление файлов меньше определенного размера |
|
||||
|
|
VBS/WSH/JS - [решено] Удаление файлов меньше определенного размера
|
|
Пользователь Сообщения: 103 |
Нужен простенький скриптик.. Есть папка, допустим с:\papka, нужно чтобы скрипт удалял в ней все файлы меньшие по размеру чем 9кб. Плюс, если это возможно удалял все файлы в данной папке, независимо от размера, дата создания которых старше чем 6 дней от текущей даты.
И второй скрипт нужен, он тоже простой. копировать все файлы из папки c:\papka в папку c:\papka2 Вообще, можно их объединить, чтобы первым действием скрипт удалял все файлы меньше 9кб по размеру(и старше 6 дней созданные), а затем копировал оставшиеся в папку2 Заранее огромное спасибо |
|
|
Отправлено: 15:37, 12-02-2011 |
|
Ветеран Сообщения: 1001
|
Профиль | Отправить PM | Цитировать Вот, VBS скрипт
DeathLine = 6
Folder = "c:\papka"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Folder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
Datefile = objfile.DateCreated
DiffDate = DateDiff("d",Datefile,Now)
WScript.Echo DiffDate
If DiffDate > DeathLine Then
objfile.Delete(TRUE)
Else If objfile.Size < 9216 Then
objfile.Delete(TRUE)
Else
objFSO.CopyFile objFile.Path, "c:\papka2\"
End If
End If
Next
|
|
Отправлено: 17:56, 12-02-2011 | #2 |
|
Пользователь Сообщения: 103
|
Профиль | Отправить PM | Цитировать Спасибо!
Только два момента: 1. Почему-то выскакивает окно с цифрой 0 и единственной кнопкой Ок по поводу каждого файла, нельзя ли его не отображать, а то когда 200 файлов не очень удобно 2. Измените пожалуйста копировать на вырезать, я неправильно выразился. Спасибо! |
|
Отправлено: 23:56, 12-02-2011 | #3 |
|
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать Цитата XXXp:
DeathLine = 6
Folder = "c:\papka"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Folder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
Datefile = objfile.DateCreated
DiffDate = DateDiff("d",Datefile,Now)
' WScript.Echo DiffDate
If DiffDate > DeathLine Then
objfile.Delete(TRUE)
Else If objfile.Size < 9216 Then
objfile.Delete(TRUE)
Else
objFSO.MoveFile objFile.Path, "c:\papka2\"
End If
End If
Next
|
|
|
Отправлено: 01:23, 13-02-2011 | #4 |
|
Пользователь Сообщения: 103
|
Профиль | Отправить PM | Цитировать Спасибо, то, что нужно!
Только теперь обнаружил, не удаляет файлы, созданные позднее 6 дней до текущей даты, т.е. переносит их как подходящие под условия... |
|
|
Последний раз редактировалось XXXp, 13-02-2011 в 02:41. Отправлено: 02:06, 13-02-2011 | #5 |
|
Ветеран Сообщения: 1001
|
Профиль | Отправить PM | Цитировать Цитата XXXp:
А что не так? вот же ваше условие: Цитата XXXp:
|
||
|
Отправлено: 09:52, 14-02-2011 | #6 |
|
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать Цитата Ivan Bardeen:
|
|
|
Отправлено: 15:46, 14-02-2011 | #7 |
|
Пользователь Сообщения: 103
|
Профиль | Отправить PM | Цитировать Странно, у меня почему-то не удаляет старше 6-ти дней, только меньше 9кб, сегодня ещё раз попробую вечером, спасибо
|
|
Отправлено: 16:24, 14-02-2011 | #8 |
|
Ветеран Сообщения: 1001
|
Профиль | Отправить PM | Цитировать XXXp,
покажите вывод скрипта, указав путь к файлу, который старше 6 дней и не удаляется |
|
Отправлено: 16:50, 14-02-2011 | #9 |
|
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать XXXp, может Вы для проверки скопировали куда-нибудь свою "c:\papka" и там пытаетесь скриптом работать?
При этом действии у всех файлов дата создания изменится на нынешнюю (а дата модификации остается неизменной). И, естественно, скрипту нечего удалять по условию 6 дней. |
|
Отправлено: 19:42, 14-02-2011 | #10 |
|
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| 2008 R2 - Запретить сохранение файлов определенного размера в GPO | viktor.chebayevskiy | Windows Server 2008/2008 R2 | 1 | 20-09-2010 11:27 | |
| Log/Monitoring - Запрет на запись файлов определенного типа и размера | andrei.ru | Сетевые технологии | 1 | 20-11-2009 11:53 | |
| [решено] Сжатие MP3 коллекции до определенного размера 700 Мб. | Sionnain | Видео и аудио: обработка и кодирование | 6 | 29-08-2009 07:44 | |
| [решено] Удаление всех файлов определенного формата | Grub | Хочу все знать | 4 | 24-03-2006 12:27 | |
| Размера меньше пользы больше | d0c | Microsoft Windows 95/98/Me (архив) | 3 | 07-11-2002 19:14 | |
|