在Windows中,你可以通过以下方式压缩一些文件
右键单击 → 发送至 → 压缩的(已压缩)文件夹。
并通过双击".zip "文件来解压缩,然后提取文件。
有没有办法从一个脚本(.bat文件)中应用这些能力,不需要安装任何第三方软件?
早在2013年,这是不可能的。微软没有为此提供任何可执行文件。
请看这个链接,了解一些VBS方式来做这个。 https://superuser.com/questions/201371/create-zip-folder-from-the-command-line-windows
从Windows 8开始,默认安装了.NET框架4.5,有System.IO.Compression.ZipArchive和PowerShell可用,人们可以编写脚本来实现这个目标,见 https://stackoverflow.com/a/26843122/71312
我一直在寻找这个确切问题的答案,从我的研究来看,DiryBoy的回答似乎是准确的。
我发现compact.exe程序可以压缩文件,但不是为了创建一个高度压缩的文件(或一组文件)。 它类似于你在Windows中右击一个盘符或分区时得到的选项。你可以选择进行清理(删除临时文件等),以及压缩文件。 被压缩的文件仍然可以访问,但只是被压缩以在空间不足的驱动器上创造空间。
我还发现了compress.exe,我的电脑上正好有这个软件。 它并不在大多数windows机器上,是2003年资源包的一部分。 它确实可以制作某种压缩文件,但它实际上更类似于windows安装盘中的文件(在文件扩展名或名称的最后一个字符中使用下划线)。 而 extract.exe 命令可以提取这些文件。
然而,我们的口号是,如果它可以通过GUI来完成,那么很可能有办法通过批处理、.vbs或其他类型的脚本在命令行中完成。 由于windows有'发送至'选项来创建一个压缩文件,我知道一定有办法通过命令行来做,我找到了一些选项。
这里有一个很好的链接,显示了如何使用windows的本地命令来压缩一个文件。
我在一个包含多个嵌套文件和文件夹的目录中进行了测试,效果非常好。 只要按照命令行的格式就可以了。
还有一种通过命令行解压文件的方法,我也发现了。 有一种方法,就是带着打开一个资源管理器窗口,显示压缩文件的内容是什么。 其中有些还使用了Java,它不一定是windows的原生软件,但却非常普遍,几乎看起来就是如此。
https://stackoverflow.com/questions/1021557/how-to-unzip-a-file-using-the-command-line
你可以通过使用Expand命令来解压一个压缩或本地压缩的Windows文件,例如
expand MyFile.zip myFile