2 windows compression filesystems command-line windows-10
通过使用该命令,compact.exe /compactos:query
我得到的只是压缩操作系统压缩是否激活,而不是使用什么压缩算法,例如 LZX、XPRESS4K、XPRESS8K 或 XPRESS16K。
我compact.exe /exe:algorithm
按照https://renenyffenegger.ch/notes/Windows/dirs/Windows/System32/compact_exe的建议进行了尝试,但没有成功。它不理解开关,并像 dos 一样返回开关列表的一般解释/?
。
仅供参考,我在 Windows 安装后使用命令压缩了驱动器,compact.exe /compactos:always
无需任何其他开关。到目前为止表现还不错。
另一个问题是,我在几篇文章中读到只有系统文件或可执行文件通过这种方法进行压缩。我可以放心,pdf、图像、音频、txt 等数据文件不会被压缩吗?
Compact.exe 已经默认向您展示了算法
\n\n PS D:\\compressed> Compact *.txt \n\n 列表 D:\\compressed\\\n 添加到此目录的新文件将不会被压缩。\n\n 195634 : 86016 = 2,3 到1 C LZNT1.txt\n 195634:45056 = 4,3 至 1 l LZX.txt\n 195634:195634 = 1,0 至 1 No_compression.txt\n 195634:69632 = 2,8 至 1 X XPRESS16K.txt\ n 195634 : 81920 = 2,4 到 1 x XPRESS4K.txt\n 195634 : 73728 = 2,7 到 1 X XPRESS8K.txt\n \xe2\x86\x91 压缩算法\n1 个目录中的 6 个文件\n5 个被压缩和 1 未压缩。\n1.173.804 总字节数据存储在 551.986 字节中。\n压缩比为 2,1 比 1。\n\n
看倒数第二列,C
表示默认的LZNT1算法,l
是LZX,x
是XPRESS4K,X
是XPRESS8K或XPRESS16K。事实上,compact
就像列出文件一样dir
,您可以使用它compact /a
来显示系统/隐藏文件或compact /s
递归地显示文件
不幸的是,虽然没有办法区分 XPRESS8K 和 XPRESS16K compact.exe
,但您可以通过直接调用 Win32 API 来做到这一点。CompactO 的新算法通过 Windows 覆盖过滤器 (WOF) 进行处理,您可以使用其WofIsExternalFile
API 来检索压缩信息。我已经编写了一个名为compression.ps1
do do that 的 PowerShell 脚本。这是上面相同文件的输出
PS D:\\compressed> .\\compression.ps1 (ls *.txt)\n\nFileName Algorithm\n-------- ---------\nD:\\compressed\\LZNT1.txt LZNT1\nD:\\compressed\\LZX.txt LZX\nD:\\compressed\\No_compression.txt NO_COMPRESSION\nD:\\compressed\\XPRESS16K.txt XPRESS16K\nD:\\compressed\\XPRESS4K.txt XPRESS4K\nD:\\compressed\\XPRESS8K.txt XPRESS8K\n
Run Code Online (Sandbox Code Playgroud)\n这是它的源代码,只需另存为*.ps1并按上面的方式运行
\n\nPS D:\\compressed> compact *.txt\n\n Listing D:\\compressed\\\n New files added to this directory will not be compressed.\n\n 195634 : 86016 = 2,3 to 1 C LZNT1.txt\n 195634 : 45056 = 4,3 to 1 l LZX.txt\n 195634 : 195634 = 1,0 to 1 No_compression.txt\n 195634 : 69632 = 2,8 to 1 X XPRESS16K.txt\n 195634 : 81920 = 2,4 to 1 x XPRESS4K.txt\n 195634 : 73728 = 2,7 to 1 X XPRESS8K.txt\n \xe2\x86\x91 compression algorithm\nOf 6 files within 1 directories\n5 are compressed and 1 are not compressed.\n1.173.804 total bytes of data are stored in 551.986 bytes.\nThe compression ratio is 2,1 to 1.\n\n
请注意,NTFS 压缩和 CompactOS 是完全不同的功能。当 MS 推出新的 CompactOS 功能时,compact
由于与压缩的关系,他们将其合并到命令中。但CompactOS纯粹是为了压缩只读系统文件以节省操作系统占用空间。您可以清楚地看到调用该选项是/exe
因为它旨在压缩可执行文件。这就是为什么新算法不是为编辑而设计的,写入文件将解压缩它们
\n PS D:\\compressed> echo x >.\\LZX.txt # 将更多数据写入文件\n\n PS D:\\compressed> Compact .\\LZX.txt # 现在文件已解压缩\n \n 列表 D:\\compressed\\\n 添加到此目录的新文件将不会被压缩。\n\n 8 : 8 = 1,0 到 1 LZX.txt\n\n1 个目录中的 1 个文件\n0已压缩,1 未压缩。\n8 个字节中总共存储 8 个字节的数据。\n压缩比为 1,0 比 1。\n\n
OTOH NTFS 压缩功能使用旧的 LZNT1 算法,旨在处理任何文件。它支持即时编辑,您可以任意写入文件,并且它们仍然是压缩的。您还可以将文件夹中的新文件标记为使用 LZNT1 自动压缩,但不能使用新算法
\n请注意,该/exe
选项不是用于检查算法,而是用于在压缩时指定算法。compact /C /exe:<algorithm> your_files
将使用指定的 EXE 算法压缩指定的文件,而compact /C your_files
将使用 NTFS 压缩来压缩文件
归档时间: |
|
查看次数: |
2768 次 |
最近记录: |