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

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

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

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


当前回答

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

tar -xf test.zip

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

其他回答

我对所有这些解决方案都有疑问。

它们并不完全相同,当从相同的源文件夹生成时,它们都创建的文件与RMB—> send to—>压缩(压缩)文件夹相比有轻微的大小差异。我有过的最接近的大小差异是300kb的差异(脚本>手册),使用:

powershell Compress-Archive -Path C:\sourceFolder -CompressionLevel Fastest -DestinationPath C:\destinationArchive.zip

(注意-CompressionLevel。有三个可能的值:最快,无压缩和最佳,(默认值:最佳))

我想做一个。bat文件,它可以自动将我正在使用的WordPress插件文件夹压缩成。zip文件,这样我就可以把它上传到WordPress站点并测试插件。

但出于某种原因,它不能与任何这些自动压缩,但它可以与手动人民币压缩,我发现真的很奇怪。

脚本生成的。zip文件实际上破坏了WordPress插件,使其无法激活,也不能从WordPress内部删除。我必须SSH到服务器的“后台”,手动删除上传的插件文件。而手动生成的人民币文件正常工作。

我发现了一种方法来解压缩压缩文件与批处理文件:

@echo off
::unziper
set /p zip=zip:
powershell -Command "Expand-Archive %zip%"
echo done
pause

我把这个贴出来,以防有人需要。 你为什么要修改我的答案?

更新的windows版本包括tar.exe。 Tar.exe可用于CMD或Windows批处理文件中。

//Compress a folder:
tar -caf aa.zip c:\aa

它并不是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高级用法

加上@Jason Duffett的回答及其注释,这里有一个脚本,从用户那里获得输入和输出(分别是文件名和目录名):

@echo off
set input=%1
set output=%2
powershell.exe "Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('%input%', '%output%');"

用法:

unzip.bat path\to\file.zip path\to\output\directory