2013-11-10 72 views
0

我正在尝试使用批处理文件将特定目录中的所有文件和文件夹压缩到一个压缩文件夹中而没有使用WinRAR,WinZip或7Zip。如何在没有WinRAR,Winzip或7zip的情况下批量压缩文件?

更具体地说: 比方说,我有一个名为文件\ 文件夹,我想创建一个拉链在文件\一切到一个新的.zip文件称为类似的文件\文件夹中的批处理文件“MyZippedFile 。压缩”。

任何帮助将不胜感激!

+0

VBS脚本可以归档为.ZIP - 为什么不能使用归档程序? – foxidrive

+1

我无法使用存档器,因为将要使用该脚本的人可能没有在他们的计算机上安装任何存档器...... - 这不是问题吗? – user2972067

+0

这只是一个存档器是计算机中的重要工具,而免费的工具是很好的。 – foxidrive

回答

0

拉链是文件夹。这从一个fodler复制到另一个。

'Zip.vbs - needs an existing zip file 
Set objShell = CreateObject("Shell.Application") 
Set Ag=Wscript.Arguments 
set WshShell = WScript.CreateObject("WScript.Shell") 

Set SrcFldr=objShell.NameSpace(Ag(1)) 
Set DestFldr=objShell.NameSpace(Ag(0)) 
Set FldrItems=SrcFldr.Items 
DestFldr.CopyHere FldrItems, &H214 
Msgbox "Finished" 

'Unzip.vbs - needs existing unzip directory 
Set objShell = CreateObject("Shell.Application") 
Set Ag=Wscript.Arguments 
set WshShell = WScript.CreateObject("WScript.Shell") 

Set DestFldr=objShell.NameSpace(Ag(1)) 
Set SrcFldr=objShell.NameSpace(Ag(0)) 
Set FldrItems=SrcFldr.Items 
DestFldr.CopyHere FldrItems, &H214 
Msgbox "Finished" 

'CreateBlankZip.vbs 
Set Ag=Wscript.Arguments 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set ts = fso.OpenTextFile(Ag(0), 8, vbtrue) 
BlankZip = "PK" & Chr(5) & Chr(6) 
For x = 0 to 17 
    BlankZip = BlankZip & Chr(0) 
Next 
ts.Write BlankZip 
+0

嗨大卫 - 这似乎非常有帮助,但我似乎仍然无法让它工作...我为我的无知道歉。您编写的这个脚本是否包含在.vbs或.bat文件中?当你说“'Zip.vbs - 需要一个现有的压缩文件'和''Unzip.vbs - 需要一个现有的解压目录'和'CreateBlankZip.vbs' - 是我需要创建的独立文件或者是这个一个大文件? – user2972067

0

我创建了zipping files from different folders preserving the directory structure发现VBS脚本备份目录文件只使用内置的寡妇压缩功能。它只能压缩文件和文件夹,不解压缩。保持文件夹完好无损。

将代码放在一个文件中(例如BackZip.vbs),并使用wscript.exe执行它,该代码包含在大多数使用.NET的计算机中。 (如wscript.exe BackZip.vbs /X "C:\My Folder\")它只需要2005年发布的.NET 2.0或更高版本。

很多代码围绕处理单个文件,但如果你只是在做文件夹,你可以删除很多码。

相关问题