7-zip 在尝试提取未损坏的文件时无法将文件打开为存档错误

问题描述 投票:0回答:1

我下载了一堆存档文件(.7z、.rar、.zip),我想批量提取所有这些文件,我很快想出了这个 PowerShell 单行程序:

get-childitem 'D:\downloads\ttw' -file -include @("*.7z","*.rar","*.zip") -force -recurse | %{7za x $_.fullname -o"$($_.fullname -replace '\.(7z|rar|zip)')"}

本来打算在解压后加一个删除存档的命令(

remove-item -path $_.fullname -force
),结果万一出问题就放弃了

确实出了点问题。

一堆文件没有解压,报如下错误:

7-Zip (a) 22.01 (x64) : Copyright (c) 1999-2022 Igor Pavlov : 2022-07-15

Scanning the drive for archives:
1 file, 35568 bytes (35 KiB)

Extracting archive: D:\downloads\ttw\fo4\BetterCompanions-18547-1-35-1668523425.rar
ERROR: D:\downloads\ttw\fo4\BetterCompanions-18547-1-35-1668523425.rar
Cannot open the file as archive


Can't open as archive: 1
Files: 0
Size:       0
Compressed: 0

当然我谷歌搜索了这个错误,它确实返回了一堆相关结果:“无法打开这个文件作为存档”,但绝对没有一个以任何方式有用。

我下载了 https://www.7-zip.org/a/7z2201-extra.7z 并使用了存档内 x64 文件夹中的 7za.dll、7za.exe 和 7zxa.dll。

我绝对确定所有文件都没有损坏,因为我已经打开了一堆在 PeaZip 中给出错误的档案,测试它们并提取它们,根本没有问题。事实上,我知道 PeaZip 在内部使用 7-zip。

那么我该如何摆脱这个愚蠢的错误呢?


我已经设法获得了 PeaZip 使用的控制台命令的语法,它是这样的:

&"C:\Program Files\PeaZip\res\bin\7z\7z.exe" x -aoa "-oD:\downloads\TTW\fo4\BetterCompanions-18547-1-35-1668523425\" -bb0 -bse0 -bsp2 -pdefault -sccUTF-8 -snz "D:\downloads\TTW\fo4\BetterCompanions-18547-1-35-1668523425.rar"

如您所见,我已在 PowerShell 中运行它,并且命令已成功完成。

7-Zip 22.01 (x64) : Copyright (c) 1999-2022 Igor Pavlov : 2022-07-15

Scanning the drive for archives:
1 file, 35568 bytes (35 KiB)

Extracting archive: D:\downloads\TTW\fo4\BetterCompanions-18547-1-35-1668523425.rar
--
Path = D:\downloads\TTW\fo4\BetterCompanions-18547-1-35-1668523425.rar
Type = Rar
Physical Size = 35568
Solid = -
Blocks = 2
Multivolume = -
Volumes = 1

Everything is Ok

Files: 2
Size:       193434
Compressed: 35568

但是我只是将可执行文件名称更改为指向我下载的文件错误返回:

PS C:\Users\Xeni> 7za x -aoa "-oD:\downloads\TTW\fo4\BetterCompanions-18547-1-35-1668523425\" -bb0 -bse0 -bsp2 -pdefault -sccUTF-8 -snz "D:\downloads\TTW\fo4\BetterCompanions-18547-1-35-1668523425.rar"

7-Zip (a) 22.01 (x64) : Copyright (c) 1999-2022 Igor Pavlov : 2022-07-15

Scanning the drive for archives:
1 file, 35568 bytes (35 KiB)

Extracting archive: D:\downloads\TTW\fo4\BetterCompanions-18547-1-35-1668523425.rar

Can't open as archive: 1
Files: 0
Size:       0
Compressed: 0

我不知道发生了什么,但似乎我需要 7z.exe 而不是 7za.exe。

7zip
1个回答
0
投票

请不要关闭问题,我只是想在这里发布一个答案以帮助未来面临同样问题的人。

解决方法很简单,用7z.exe代替7za.exe。

因为 7za.exe 支持的格式比 7z.exe 少

我在这里找到了资料

我决定把这篇文章留在这里,作为以后的参考,因为谷歌很烂。请不要对此投反对票。

附注我使用此命令提取所有文件并在提取成功后删除档案:

get-childitem 'D:\downloads\ttw' -file -include @("*.7z","*.rar","*.zip") -force -recurse | %{if ((7z x $_.fullname -aoa -o"$($_.fullname -replace '\.(7z|rar|zip)')" | out-string) -match 'Everything is Ok') {remove-item $_.fullname}}
© www.soinside.com 2019 - 2024. All rights reserved.