用VBScript实现压缩目录中的所有文件(Zip)


On Error Resume Next
Dim objFSO,sourcepath,targetpath,targetfile

Function GetSourceFile(path)
Dim file,folder,sfolder,subfolder,files
If Not objFSO.FolderExists(path) Then
Msgbox "目标文件夹不存在!"
Else
objFSO.CreateFolder targetpath & Right(path,Len(path)-Len(sourcepath))
Set folder=objFSO.GetFolder(path)
Set files=folder.files
For Each file in files
targetfile=targetpath & Right(path,Len(path)-Len(sourcepath)) & "" & file.name & ".zip"
Set fp=objFSO.OpenTextFile(targetfile,2,True)
fp.Write Chr(80) & Chr(75) & Chr(5) & Chr(6) & String(18,0)
fp.Close
oApp.Namespace(targetfile).CopyHere path & "" & file.name
WScript.Sleep 1000
Next
Set subfolder=folder.subfolders
For Each sfolder in subfolder
GetSourceFile path & "" & sfolder.name
Next
End If
End Function

Set objFSO=CreateObject("Scripting.FileSystemObject")
Set oApp=CreateObject("Shell.Application")
sourcepath="C:Documents and SettingsAdministrator桌面Watermarks"
targetpath="D:temp"
GetSourceFile sourcepath
Set objFSO=Nothing
Set oApp=Nothing

使用方法:
直接将上面的代码保存为test.vbs文件,然后修改sourcepath与targetpath注意目标目录必须是新目录,使用的时候最好加上判断。