![我无法让 compress.exe 产生任何东西](https://linux22.com/image/1450113/%E6%88%91%E6%97%A0%E6%B3%95%E8%AE%A9%20compress.exe%20%E4%BA%A7%E7%94%9F%E4%BB%BB%E4%BD%95%E4%B8%9C%E8%A5%BF.png)
我正在尝试Send to/Compressed (zipped) folder
使用 Microsoft 工具compress.exe
(包含在 Windows Server 2003 资源工具包中)模拟 Windows 功能。
使用该工具可能不行,但我无法让它产生任何东西。我尝试过这种情况:
md test
cd test
md folder
echo this is file 1 >folder\file1.txt
echo this is file 2 >folder\file2.txt
md output
compress folder\*.* output -z
Microsoft (R) File Compression Utility Version
Copyright (C) Microsoft Corp. 1990-1999. All rights reserved.
Compressing folder\file1.txt to output\folder\file1.txt using MS-ZIP compression.
Compressing folder\file2.txt to output\folder\file2.txt using MS-ZIP compression.
dir /s
Volume in drive C is TI80140500H
Volume Serial Number is AC18-E911
Directory of C:\test
12/05/2015 01:22 a.m. <DIR> .
12/05/2015 01:22 a.m. <DIR> ..
12/05/2015 01:34 a.m. <DIR> folder
12/05/2015 01:22 a.m. <DIR> output
0 File(s) 0 bytes
Directory of C:\test\folder
12/05/2015 01:34 a.m. <DIR> .
12/05/2015 01:34 a.m. <DIR> ..
12/05/2015 01:35 a.m. 15 file1.txt
12/05/2015 01:36 a.m. 17 file2.txt
2 File(s) 32 bytes
Directory of C:\test\output
12/05/2015 01:22 a.m. <DIR> .
12/05/2015 01:22 a.m. <DIR> ..
0 File(s) 0 bytes
Total Files Listed:
2 File(s) 32 bytes
8 Dir(s) 558,695,092,224 bytes free
我看不到这个看似成功的序列生成的任何文件。如何才能compress
生成一个压缩文件夹 - 或者任何东西?
** 更新 **
以下是该工具的帮助:
Syntax:
COMPRESS [-R] [-D] [-S] [ -Z | -ZX ] Source Destination
COMPRESS -R [-D] [-S] [ -Z | -ZX ] Source [Destination]
Description:
Compresses one or more files.
Parameter List:
-R Rename compressed files.
-D Update compressed files only if out of date.
-S Suppress copyright information.
-ZX LZX compression. This is default compression.
-Z MS-ZIP compression.
Source Source file specification. Wildcards may be
used.
Destination Destination file | path specification.
Destination may be a directory. If Source is
multiple files and -r is not specified,
Destination must be a directory.
Examples:
COMPRESS temp.txt compressed.txt
COMPRESS -R *.*
COMPRESS -R *.exe *.dll compressed_dir
三个例子中的第一个看起来像是获取一个文件并生成该文件的压缩版本。它确实做到了。
第二个按照您所期望的方式运行,生成了tempt.tx_
。
第三个COMPRESS -R *.exe *.dll compressed_dir
确实做了一些事情,使我之前的断言成为谎言。它生成一个文件 compressed_dir._ ,我猜里面保存着文件。 COMPRESS -R *.txt *.vbs folder compressed_dir
另一方面,它忽略了文件夹 AFAICT。COMPRESS -R folder compressed_dir
给出了一个错误"ERROR: The compressed_dir file is not found."
。
所以我的结论是它不能压缩文件夹,也不能生成 ZIP 文件/压缩文件夹。
不管怎样,我放弃了,并使用了 7Zip,效果很好。
答案1
我不认为这个工具是用来干这个的。它的 TechNet 文章说你只能使用以下方法解压缩此类文件 Expand.exe
Compress.exe
。此外,它警告不要在 NTFS 文件系统上使用,并指导使用Compact.exe
。
如果你使用 Compact,你会看到它在文件系统级别启用了压缩。我不确定哪个工具与发送到 → 压缩文件夹,但这些似乎都不是。
答案2
COMPRESS 和 EXPAND 实用程序是命令行工具,可以追溯到早期的 Microsoft 产品 - 例如 MS-DOS 和 Windows 3.x 时代 - 用于压缩文件以便在软盘上分发。
它们适用于单个文件,其中压缩版本的扩展名的最后一个字符通常更改为下划线或美元符号。(例如,文件“vga.drv”在压缩后将变为“vga.dr_”或“vga.dr$”。)
这种旧压缩格式后来被 Cabinet (.cab) 文件格式取代,后者能够包含多个文件。EXPAND 的后续版本能够从 .CAB 中提取文件。
也就是说,这些都与压缩文件功能无关,也与 .ZIP 档案无关。这一点在本主题的其他地方已经得到充分证实,但我认为添加一些关于该实用程序的历史细节可能会有所帮助是打算这么做。
答案3
压缩、压缩、扩展 - 是 LZ77 算法的实现,可以在互联网上轻松找到。
Expand.exe 和 cabinet.dll 仍然存在于 Windows 中,compress.exe 可以在旧的 MS-DOS 历史站点上找到,例如http://www.manmrk.net/tutorials/DOS/msdos.htm并且可以在 DosBox 下运行,在 Linux 中您还可以找到 mscompress 和 msexpand - 它们是功能齐全的类似物。