在Windows中,你可以压缩一些文件

右键单击→发送到→压缩(压缩)文件夹

双击.zip文件解压缩并解压缩文件。

是否有一种方法可以从脚本(.bat文件)应用这些功能,而不需要安装任何第三方软件?


当前回答

我一直在寻找这个确切问题的答案,从我的研究来看,DiryBoy的回答似乎是准确的。

我发现compact.exe程序压缩文件,但不创建高度压缩的文件(或一组文件)。它类似于在Windows中右键单击驱动器号或分区时得到的选项。您可以选择进行清理(删除临时文件等)以及压缩文件。压缩文件仍然可以访问,但只是压缩以在空间不足的驱动器上创建空间。

我还在电脑上找到了compress.exe。它不是大多数windows机器上的本机,而是2003年资源包的一部分。它确实生成了某种压缩文件,但它实际上更类似于windows安装磁盘中的文件(文件扩展名或名称的最后一个字符是下划线)。exe命令提取这些文件。

然而,关键是,如果可以通过GUI本机完成,那么很可能有一种方法可以通过批处理、.vbs或命令行中的其他类型的脚本来完成。由于windows有“发送到”选项来创建zip文件,我知道一定有一种方法可以通过命令行来完成,我找到了一些选项。

这里有一个很好的链接,展示了如何使用windows本机命令压缩文件。

https://superuser.com/questions/110991/can-you-zip-a-file-from-the-command-prompt-using-only-windows-built-in-capabili

我用一个包含多个嵌套文件和文件夹的目录对它进行了测试,效果非常好。只需遵循命令行的格式。

还有一种通过命令行解压文件的方法,我也发现了。一种方法是打开一个资源管理器窗口,显示压缩文件的内容。其中一些也使用Java,它不一定是windows本机的,但它是如此常见,几乎看起来是这样的。

https://superuser.com/questions/149489/does-windows-7-have-unzip-at-the-command-line-installed-by-default

如何使用命令行解压缩文件?

其他回答

它并不是ZIP文件,但使用Windows工具压缩文件的唯一方法是:

makecab <source> <dest>.cab

减压:

expand <source>.cab <dest>

高级示例(来自ss64.com):

Create a self extracting archive containing movie.mov:
C:\> makecab movie.mov "temp.cab"
C:\> copy /b "%windir%\system32\extrac32.exe"+"temp.cab" "movie.exe"
C:\> del /q /f "temp.cab"

更多信息:makecab,扩展,makecab高级用法

如果你安装了Java,你可以使用jar命令压缩成ZIP文件:

jar -cMf targetArchive.zip sourceDirectory

创建一个新的归档文件。 M =指定清单文件不应添加到存档。 f =目标文件名。

这个对我来说很管用(在2021年):

tar -xf test.zip

这将解压缩当前目录中的测试。

如果您需要将此作为脚本的一部分,那么最好的方法是使用Java。假设bin目录在你的路径中(在大多数情况下),你可以使用命令行:

jar xf test.zip

如果Java不在你的路径上,直接引用它:

C:\Java\jdk1.6.0_03\bin>jar xf test.zip

可以使用此命令压缩整个文件夹及其子文件夹

/c /s " c:\Temp\my_folder" /I /Q

来解压

compact /u /s:"C:\Temp\my_folder" /I /Q

c代表压缩,u代表解压