Need help with VB script to zip a file in a folder and give the zip file created the name of the original name of the file. Like if there is a trn file named abc.trn then want to create a zip file named abc.zip. Please help if anyone have any idea
Asked
Active
Viewed 9,519 times
1 Answers
3
Yes and no. According to this answer on SO it is not possible using VBscript alone.
There are VBA methods to zip and unzip using the windows built in compression as well, which should give some insight as to how the system operates. You may be able to build these methods into a scripting language of your choice.
However, you can use an "implementation-dependent behavior of the Windows shell" (again, quoted from the same source)
Dim fso, winShell, MyTarget, MySource, file
Set fso = CreateObject("Scripting.FileSystemObject")
Set winShell = createObject("shell.application")
MyTarget = Wscript.Arguments.Item(0)
MySource = Wscript.Arguments.Item(1)
Wscript.Echo "Adding " & MySource & " to " & MyTarget
'create a new clean zip archive
Set file = fso.CreateTextFile(MyTarget, True)
file.write("PK" & chr(5) & chr(6) & string(18,chr(0)))
file.close
winShell.NameSpace(MyTarget).CopyHere winShell.NameSpace(MySource).Items
do until winShell.namespace(MyTarget).items.count = winShell.namespace(MySource).items.count
wscript.sleep 1000
loop
Set winShell = Nothing
Set fso = Nothing