【问题标题】:How to handle a CRC error while extracting a .zip through 7zip command in Powershell?如何在 Powershell 中通过 7zip 命令提取 .zip 时处理 CRC 错误?
【发布时间】:2017-08-17 09:39:51
【问题描述】:
$sourceZip = "Path\Bla.zip\"
$destinationForExtraction = "Anotherpath\Bla"
7z x $sourceZip "-o$destinationForExtraction" *.exe -y

此代码 sn-ps 给出错误7z : ERROR: CRC Failed: SomeFile.exe。 我已经检查了上述文件的 crc。是的,crc 不匹配。但是使用手动过程(右键单击>提取到文件夹)提取相同的zip。

有没有办法处理这个异常?

7z 的这些矛盾行为背后的原因是什么?手动解压时可以正常解压,但命令行解压时无法解压同一个文件。

【问题讨论】:

  • 如果您希望捕获异常并处理它,请使用 try/catch。如果你在看,为什么会这样?然后我建议你检查一次其他系统或重新安装一次 7zip 并查看
  • 这个要问7z.exe的作者了。
  • @Bill_Stewart 感谢您的建议。
  • @RanadipDutta 感谢您的建议。我肯定尝试过尝试/捕获。但不幸的是,在外部命令的情况下,PowerShell 不支持 try/catch。在这种情况下,7z 是一个外部命令而不是 .NET 命令,因此无法使用 try/catch 捕获异常。我尝试使用 $LASTEXIT 代码,但也没有用。

标签: windows powershell 7zip powershell-4.0 powershell-5.0


【解决方案1】:

重定向错误应该对你有用:

$cmdOutput = 7z x $sourceZip "-o$destinationForExtraction" *.exe -y 2>&1

$cmdoutput 现在应该保留该值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 2016-04-17
    • 2018-08-18
    • 1970-01-01
    • 2023-03-03
    • 2018-05-05
    相关资源
    最近更新 更多