powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / VBS работа с ZIP архивами
6 сообщений из 6, страница 1 из 1
VBS работа с ZIP архивами
    #35334767
День добрый.
Возникла острая необходимость работы с zip архивами из скрипта VBS (в частности, разархивирование). Встроенных средств для этого в VBS нет, насколько я знаю VBS. Поиском по инету нашелд несколько ActiveX компонентов, но они все платные.
Может кто-нибудь посоветует какую-нибудь толковую бесплатную идею по разархивации вложений или бесплатный ActiveX/COM?
Требования к функциональности:
1. Само-собой разархивация
2. Желательна обработка ошибок при работе

С уважением.
...
Рейтинг: 0 / 0
VBS работа с ZIP архивами
    #35334861
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тынц .
Разархивацию и обработку ошибок, надеюсь, сам допишешь.
...
Рейтинг: 0 / 0
VBS работа с ZIP архивами
    #35334907
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денисов ДмитрийВозникла острая необходимость работы с zip архивами из скрипта VBS (в частности, разархивирование). Встроенных средств для этого в VBS нет

Зато есть в Windows. Поэтому с zip файлом можно работать через Shell.Application как с обычной папкой.

Код: plaintext
1.
2.
3.
Set ShellApp = CreateObject("Shell.Application")
Set objDestFolder = ShellApp.NameSpace("C:\") 'куда распаковать
Set objSrcFolder = ShellApp.NameSpace("C:\MyZIP.zip") 'что распаковать
objDestFolder.CopyHere objSrcFolder.Items 'распаковка архива

Это всё.
...
Рейтинг: 0 / 0
VBS работа с ZIP архивами
    #35334938
%?*?% Денисов ДмитрийВозникла острая необходимость работы с zip архивами из скрипта VBS (в частности, разархивирование). Встроенных средств для этого в VBS нет

Зато есть в Windows. Поэтому с zip файлом можно работать через Shell.Application как с обычной папкой.

Код: plaintext
1.
2.
3.
Set ShellApp = CreateObject("Shell.Application")
Set objDestFolder = ShellApp.NameSpace("C:\") 'куда распаковать
Set objSrcFolder = ShellApp.NameSpace("C:\MyZIP.zip") 'что распаковать
objDestFolder.CopyHere objSrcFolder.Items 'распаковка архива

Это всё.

Спасибо, то что нужно.
...
Рейтинг: 0 / 0
VBS работа с ZIP архивами
    #35335366
Такой вариант работает, но хотелось бы добиться работы без участия пользователя. Прочитал про параметры для CopyHere в MSDN http://]http://msdn.microsoft.com/en-us/library/bb759795(VS.85).aspx. Сделал вроде все как в примере, только все равно и диалог появляется, и подтверждение перезаписи тоже.

Вот сорец скрипта, который должен подавлять появление диалога, но не подавляет:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub Main()
	Dim fso,Folder,Files,f1,ShellApp,objDestFolder,objSrcFolder
	SET ShellApp = CreateObject("Shell.Application")
	SET Fso = CreateObject("Scripting.FileSystemObject")
	SET Folder = Fso.GetFolder(xxxxx)
	SET Files = Folder.Files
	For Each f1 IN Files
		If InStr(f1.name,"k_7") Then
			Set objDestFolder = ShellApp.NameSpace("C:\Temp") 'куда распаковать
			Set objSrcFolder = ShellApp.NameSpace(xxxxx&f1.name) 'что распаковать
			objDestFolder.CopyHere objSrcFolder.Items,FOF_SILENT 'распаковка архива
			Exit For
		End If
	NEXT
End Sub

' При запуске скрипта
PRIVATE Const FOF_NOCONFIRMATION =  16 
PRIVATE Const FOF_SILENT =  4 
Main 

Может кто подскажет, что здесь не так?
...
Рейтинг: 0 / 0
VBS работа с ZIP архивами
    #35335702
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для zip файлов эти параметры не срабатывают. Одно из решений - распаковывать во временную папку и затем делать MoveHere в основную папку. Примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
	
Set ShellApp = CreateObject("Shell.Application")

Set objTMPFolder = ShellApp.NameSpace("C:\TMP1") 'временная папка'
Set objDestFolder = ShellApp.NameSpace("C:\TMP") 'основная папка'
Set objFolder = ShellApp.NameSpace("C:\") 'папка с zip файлами'

Set objFolderItems = objFolder.Items()
objFolderItems.Filter  64 ,"*.zip"

   For Each f In objFolderItems
      Set objSrcFolder = ShellApp.NameSpace(f)
      objTMPFolder.CopyHere objSrcFolder.Items 'распаковка во временную папку'
   Next

objDestFolder.MoveHere objTMPFolder.Items, 4 + 16  'бесшумное перемещение в основную папку'
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / VBS работа с ZIP архивами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]