powershell - Powershell 条件
问题描述
我想在 powershell 中写这个,但无论我如何尝试,似乎都无法让它工作。我用过“try and catch”,但它似乎没有按我想要的方式工作。
Try
{
write-host Attempting Reset
CD C:\MKC1_ECU_Reuse
./power_on.bat
CD C:\UTIL\XDL\XMIT\BIN
.\xpc32_nodriver conm2.xpc -con
.\xpc32_nodriver $global:path\$global:customer\$global:customer_reset.xpc
}
Catch
{
Write-warning "Something went wrong!: $_"
return # script failed
}
在批处理中,它看起来像这样:
Do some task || goto :error
goto :finished
无论任务是否成功完成,Powershell 都会尝试执行该任务,然后转到下一行。我正在尝试做的任务是连接到 EEPROM 并对其进行写入。如果写入失败,我不想继续我的脚本。我宁愿能够显示一个错误,告诉操作员有问题。我正在使用我的公司允许我使用的东西,或者我会使用允许 || 的最新 Powershell 和 &&。任何帮助将不胜感激。
解决方案
在批处理文件中,您可能需要以下内容:
IF %ERRORLEVEL% NEQ 0 (
exit %ERRORLEVEL%
)
这应该将提升的退出代码传递回$LASTEXITCODE
变量中的 PowerShell。然后,您也许可以使用上一个答案中的逻辑。
我猜他们是在强迫你使用 .bat,但最好是从 PowerShell 内部启动底层程序。
推荐阅读
- java - 如何修复 2 个 JUNITS 类的序列
- swift - 我可以创建一个符合内部协议的 iOS 框架并在我的项目中定义相同的协议吗?
- sas - 随机分配到 SAS 中特定百分比的观察值
- angular - 如果密钥存在于离子存储中,如何使用 * ngIf 显示按钮
- arrays - 什么是内存中表示的未定义向量元素?
- javascript - 如何将可读流转换为 excel 文件对象?
- c - 这个程序中的main函数返回给os的是什么?
- ruby-on-rails - 不可能使用 bcrypt 以多步形式加密密码
- vue.js - Vue:获取图像宽度+高度在组件加载时返回零
- r - R中的变量名称与for