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

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

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

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


当前回答

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

jar xf test.zip

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

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

其他回答

使用7 - zip:

Zip:你有一个文件夹foo,想把它压缩到myzip.zip

"C:\Program Files\7-Zip\7z.exe" a  -r myzip.zip -w foo -mem=AES256

解压:你想解压它(myzip.zip)到当前目录(./)

"C:\Program Files\7-Zip\7z.exe" x  myzip.zip  -o./ -y -r

在2013年,这是不可能的。微软没有为此提供任何可执行文件。

看这个链接,一些VBS的方法来做到这一点。 https://superuser.com/questions/201371/create-zip-folder-from-the-command-line-windows

从Windows 8开始,.NET Framework 4.5默认安装,有system . io . compress . ziparchive和PowerShell可用,你可以写脚本来实现这一点,见 https://stackoverflow.com/a/26843122/71312

它并不是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

正如@Noam Manos所回答的,我们可以通过在.bashrc文件中使用别名来改进压缩:

别名zip=“jar -cMf”

然后命令(在bash终端中)将是

邮编目标.zip目录1 目录2

注意:你应该安装java和git bash,并在windows中进行安装。