Нижеприведеный скрипт отлично паковал файлы, но в новой win2008 R2 x64 почему то не пакует. Пишет
Сompressed(zipped) folderrs error: File not found or no read permission.
Пробовал закинуть старый pkzip.exe - пишет что он не совместим с ОS.
Как скриптом, очень желательно без установки стороннего ПО запаковывать в zip?
Где то выкачал архив zip.vbs или что-то такое, привожу часть скрипта
Option Explicit
Dim arg
Dim optind
If WScript.Arguments.Count<1 Then
WScript.Echo "Usage: CScript.exe ZIP.VBS [-d|-e|-v] ZIPfile [files...]"
WScript.Quit
End If
arg=WScript.Arguments(optind)
Select Case LCase(arg)
Case "-a","-c"
optind=optind+1
Call MakeZIP()
Case "-d"
optind=optind+1
Call DeleteZIP()
Case "-e"
optind=optind+1
Call ExtractZIP()
Case "-v","-l"
optind=optind+1
Call ListZIP()
Case Else
If optind=WScript.Arguments.Count-1 Then
Call ListZIP()
Else
Call MakeZIP()
End If
End Select
WScript.Quit
Sub MakeZIP()
Dim fso
Dim wShell
Dim Shell
Dim n
Dim ie
Dim ZIPfile
Dim ZIPdata:ZIPdata="PK" & Chr(5) & Chr(6) & String(18,0)
Dim file
Dim Folder
Dim FolderItem
Dim dFolder
If WScript.Arguments.Count<optind+2 Then
WScript.Echo "Arguments Missing."
WScript.Quit
End If
Set fso=CreateObject("Scripting.FileSystemObject")
Set wShell=CreateObject("WScript.Shell")
Set Shell=CreateObject("Shell.Application")
For n=0 To 9
For Each ie In Shell.Windows
If Not ie.Busy Then
If ie.ReadyState=4 Then
If InStr(TypeName(ie.Document),"IShellFolderViewDual")=1 Then
Exit For
End If
End If
End If
Next
If Not IsEmpty(ie) Then Exit For
If n=0 Then CreateObject("WScript.Shell").Run "explorer.exe",0,True
WScript.Sleep 100
Next
If IsEmpty(ie) Then
WScript.Echo "Failed"
WScript.Quit
End If
Set Shell=ie.Document.Application
ZIPfile=fso.GetAbsolutePathName(WScript.Arguments(optind))
If UCase(fso.GetExtensionName(ZIPfile))<>"ZIP" Then
WScript.Echo "Invalid Extension Name -",fso.GetExtensionName(ZIPfile)
WScript.Quit
End If
If Not fso.FileExists(ZIPfile) Then
fso.CreateTextFile(ZIPfile,False).Write ZIPdata
End If
Set dFolder=Shell.NameSpace(ZIPfile)
For optind=optind+1 To WScript.Arguments.Count-1
file=fso.GetAbsolutePathName(WScript.Arguments(optind))
Set Folder=Shell.NameSpace(fso.GetParentFolderName(file))
Set FolderItem=Folder.ParseName(fso.GetFileName(file))
If FolderItem Is Nothing Then
WScript.Echo WScript.Arguments(optind),"- Not Found."
WScript.Quit
End If
dFolder.CopyHere FolderItem
Next
End Sub
Таки правда файл был не доступен. Поставил доступ на запись в security для Services\Users и заработало.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Прошу помощи в следующей ситуацииПарсер (на node-crawler https://github
Нужна помощьЕсть задачка - Вывести день недели на русском или английском языке
Как отобразить маршрут на основе множества координат (10-100)Движение автомобиля