0

我正在尝试使用批处理文件将特定目录中的所有文件和文件夹压缩到一个压缩文件夹中,而不使用 WinRAR、WinZip 或 7Zip。

更具体地说:假设我有一个名为 Files\ 的文件夹,我想创建一个批处理文件,将 Files\ 中的所有内容压缩到 Files\ 文件夹中的一个新的 .zip 文件名为“MyZippedFile.zip”。

任何帮助将不胜感激!

4

2 回答 2

0

我创建了在从不同文件夹压缩文件时找到的 VBS 脚本,保留目录结构以仅使用内置的寡妇压缩功能备份目录和文件。它只压缩文件和文件夹,不解压缩。保持文件夹完好无损。

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

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

于 2013-11-13T15:25:05.597 回答
0

邮编是文件夹。这从一个文件夹复制到另一个文件夹。

'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
于 2013-11-10T03:48:30.517 回答