我还无法弄清楚如何才能使它正常工作。
我希望它像提取zip一样提取zip,但是如果失败(错误图片),我希望它删除zip并再次卷曲它。
出现错误的原因是zip损坏,即用户在初始zip安装过程中关闭了程序。
if EXIST "%UserProfile%\Downloads\100 Player Among US.zip" (
echo "---Zip Detected, Extracting it now---"
powershell -Command "Expand-Archive -Force '%UserProfile%\Downloads\100 Player Among US.zip' '%UserProfile%\Downloads\'"
if There is an error (
DEL "%UserProfile%\Downloads\100 Player Among US.zip"
echo "---Corrpupted Zip, I'm installing it again---"
curl "link"
)
)
为了能够处理批处理脚本中的Powershell错误,必须在发生错误的情况下从Powershell返回非零退出代码。
在以下情况下,Powershell返回一个非零的退出代码:
exit N
语句终止,其中N指定一个非零的退出代码。默认情况下,Expand-Archive
提取失败时会引起非终止错误。我们可以通过传递通用参数 -ErrorAction Stop
或通过在调用命令之前设置首选项变量 来将其转换为终止错误$ErrorActionPreference = 'Stop'
。
使用-ErrorAction
参数的示例:
powershell -Command "Expand-Archive -ErrorAction Stop -Force '%UserProfile%\Downloads\100 Player Among US.zip' '%UserProfile%\Downloads\'"
if ERRORLEVEL 1 (
:: Handle the error
)
使用示例$ErrorActionPreference
:
powershell -Command "$ErrorActionPreference='Stop'; Expand-Archive -Force '%UserProfile%\Downloads\100 Player Among US.zip' '%UserProfile%\Downloads\'"
if ERRORLEVEL 1 (
:: Handle the error
)
设置$ErrorActionPreference
变量可以简化运行多个命令的脚本。
谢谢!我现在实际上进行哈希检查!