2010-10-20 07:50:38 +0000 2010-10-20 07:50:38 +0000
63
63
Advertisement

从命令行创建 .zip 文件夹 - (Windows)

Advertisement

是否可以从命令行中的文件夹中创建一个 .zip 文件,我不想使用任何第三方的可执行文件。

Advertisement

答案 (10)

41
41
41
2015-04-06 21:26:20 +0000

从PowerShell 5(2016年2月)开始,你可以使用 “Compress-Archive":

Compress-Archive -Path input.txt -DestinationPath output.zip

或者:

Compress-Archive input.txt output.zip

input.txt这里也可以是一个目录 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.archive/compress-archive?view=powershell-5.1

7
7
7
2010-10-20 07:57:39 +0000

我认为Windows中没有内置的ZIP文件的命令行(除了Server 2003资源包中的compress之外)。你必须使用第三方。大家都喜欢7zip!

6
Advertisement
6
6
2010-10-20 08:32:39 +0000

为了更好地满足我的需求,我把这个脚本从几个不同的来源组合在一起。将该脚本复制并粘贴到一个以".vbs “为扩展名的文件中。

使用方法:在运行框或命令行中输入-

"C:\zipper.vbs" "C:\folderToZip\" "C:\mynewzip.zip"

脚本的路径、源文件夹、要制作的zip文件(包括.zip末尾)。

4
4
4
2018-07-04 11:29:13 +0000

想象一下,你想在不打开powershell窗口的情况下,在Command Prompt上压缩相同的文件夹:

powershell Compress-Archive . publish.zip
2
Advertisement
2
2
2018-01-18 22:50:18 +0000

这里是另一个想法,来自4个不同的来源;不是我的想法,但我把它们整理出来,让它适合我

<!-- : Begin batch script
@each off

set sourceFolder="c:\test"
set destZip="%userprofile%\desktop\example.zip"

cscript //nologo "%~f0?.wsf" //job:exewsh %sourceFolder% %destZip%

exit /b
GOTO:EOF
----- Begin wsf script --->
<package><job id="exewsh"><script language="VBScript">
'Get command-line arguments.
Set objArgs = WScript.Arguments
InputFolder = objArgs(0)
ZipFile = objArgs(1)

'Create empty ZIP file.
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)

Set objShell = CreateObject("Shell.Application")
Set source = objShell.NameSpace(InputFolder).Items
objShell.NameSpace(ZipFile).CopyHere(source)

'Required!
wScript.Sleep 2000
</script></job>
</package>
2
2
2
2016-11-30 12:19:08 +0000

可以从BAT中运行PowerShell脚本。BAT文件接收要压缩的目录路径和ZIP文件名作为参数。

1
Advertisement
1
1
2013-11-15 04:21:10 +0000

这里有一个很好的链接,显示了如何使用windows原生命令来压缩文件。 你能从命令提示符中只使用Windows的内置功能来压缩文件吗?

我用一个包含多个嵌套文件和文件夹的目录进行了测试,效果很好。

还有一种方法可以通过命令行解压文件,我也找到了这种方法。一种方法,就是打开一个资源管理器窗口,显示压缩后的文件内容。 Windows 7默认安装了命令行解压吗? https://stackoverflow.com/questions/1021557/how-to-unzip-a-file-using-the-command-line

1
1
1
2017-08-16 06:41:05 +0000

这是个老问题了,但它的相关性仍然存在。

Windows当然有自己的压缩算法,用于使用ZIP文件,但是,与7ZIP开源产品相比,它的表现确实很差,在这里找到的7ZIP http://www.7- zip.org/

其他人已经讨论过使用windows内置功能的各种方法,我的解决方案需要安装额外的软件。"C:Program Files7-Zip7z.exe" –help

执行一个简单的添加到ZIP存档: “C:Program Files7-Zip7z.exe” a filename.zip c:path

1
Advertisement
1
1
2015-01-07 14:22:03 +0000

在VBS中使用CopyHere()方法会带来几个问题。其中一个问题是,当复制过程在后台开始时,该方法会立即返回,而多次调用CopyHere()方法会相互干扰,导致ZIP无法正确创建。这里需要一个等待循环来解决这个问题。我的等待循环是基于这里发布的一个类似问题的答案。这是一个时间问题,因为当脚本在快速机器上执行时,新创建的ZIP文件被包含在Items集合中。

1
1
1
2015-01-22 12:27:53 +0000

以下是我对windows内置的压缩和解压功能的总结 - https://stackoverflow.com/questions/28043589/how-can-i-compres-zip-and-uncopress-unzip-files-and-folders-with-batch-f

的几个解决方案,几乎每台windows机器上都可以使用。

Advertisement