Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 4
1
VBS

Скрипт для архивации данных

13.03.2015, 02:59. Показов 5120. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста. Имеется данный скрипт, он работает отлично, но можно ли как-то в него добавить выборку по маскам, чтобы он не все архивировал, а только определенные типы. Либо просто добавить исключение.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'================= Комментировать блок если вариант с аргументами =============|
InputFolder = "C:\web\test1\" ' Какую папку архивировать ==========================|
OutputFolder = "C:\web\" ' Путь куда архивировать ===========================|
ZipFile = OutputFolder & Date & "_test.zip" ' Как назвать ====================|
Life = "-10" ' Срок жизни фойлов в папке архивирования =======================|
'==============================================================================|
 
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)
Set objShell = CreateObject("Shell.Application")
Set source = objShell.NameSpace(InputFolder).Items
    objShell.NameSpace(ZipFile).CopyHere(source)
 
Do Until objShell.NameSpace(ZipFile).Items.Count = objShell.NameSpace(InputFolder).Items.Count
   WScript.Sleep 500 ' Arbitrary polling delay
Loop 
 
'Удаление в папке всех файлов старше Life дней. 
Set FSO = CreateObject("Scripting.FileSystemObject")
'Выставляем количество дней, старше которых будет производится удаление файлов. 
OldDate = DateAdd("d", Life , date) 
'Указываем директорию в которой удаляем старые файлы.
Set Folder = FSO.GetFolder(OutputFolder)
Set FC = Folder.Files
For Each F1 in FC 
    If F1.DateLastModified < OldDate Then 
        F1.Delete
End If
Next
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2015, 02:59
Ответы с готовыми решениями:

Скрипт для сброса всех данных
Зашел пользователь под учетную запись пользователя .Поработал,создал файлы на рабочем столе, скачал...

Bash скрипт для архивации
Здравствуйте.Я вообще не силен в этих скриптах да и в линукс 2 раза в жизни заходил, но очень нужно...

Необходимо написать скрипт для архивации файла
Здравствуйте уважаемые коллеги Вот суть задачи .. необходимо написаит скрипт для архивации...

Скрипт архивации файлов
Добрый день. Необходима помощь в доработке скрипта. Нужно архивировать все файлы с расширением .fnt...

6
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
14.03.2015, 11:54 2
вроде в #4-м посте этого треда: Поиск в папке и подсчет файлов, Dmitrii говорил, что метод Filter объекта FolderItems умеет фильтровать файлы, попробуйте - может оно вам подойдет
1
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 4
16.03.2015, 11:02  [ТС] 3
Попробовал как написано в том посте, ничего не получилось. Что я только не подставлял. Он не выдает ошибки, а просто игнорирует фильтрацию
0
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
17.03.2015, 14:59 4
А вам именно архивация штатными средствами виндовс нужна?
Может винрар - вроде он сильно навороченный, подойдет?
0
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 4
24.03.2015, 02:16  [ТС] 5
Можно и winrar, просто мне надо чтобы функции были как в этом скрипте.
0
2618 / 548 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
25.03.2015, 20:01 6
Лучший ответ Сообщение было отмечено Inviz777 как решение

Решение

Цитата Сообщение от Inviz777 Посмотреть сообщение
... Попробовал как написано в том посте, ничего не получилось...
Видимо, не так пробовали. Пример соответствующего фрагмента:
Visual Basic
1
2
3
4
5
6
7
8
9
Set objShell = CreateObject("Shell.Application")
Set source = objShell.NameSpace(InputFolder).Items
source.Filter 64 + 128, "*.html"
For Each objFile In source
    objShell.NameSpace(ZipFile).CopyHere objFile.Path
Next
Do Until objShell.NameSpace(ZipFile).Items.Count = source.Count
   WScript.Sleep 500 ' Arbitrary polling delay
Loop
3
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 4
26.03.2015, 08:11  [ТС] 7
Ооо, блин видимо и вправду не так делал.
Спасибо огромное Dmitrii

Добавлено через 4 минуты
я вместо source.Filter писал InputFolder.Filter
Еще раз спасибо
0
26.03.2015, 08:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2015, 08:11
Помогаю со студенческими работами здесь

Написать скрипт (раз)архивации по запросу
Нужно создать скрипт который будет запрашивать какое действие совершить (архивировать или...

Система архивации windows server не создаёт расписание архивации
стоит windows 2008 r2 создаю &quot;расписание архивации&quot; и на последнем шаге вылазит ошибка &quot;имя...

Ошибка архивации данных
Доброго времени суток форумчане, мне понадобилась ваша помощь. На сервере настроена система...

Ошибка "планирование архивации могут только администраторы и операторы архива" при архивации
Здравствуйте! При попытке создать эжедневное копирование через &quot;Систему архивации Windows&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru