【发布时间】:2020-07-05 08:02:58
【问题描述】:
我在我的 PowerShell 中调用了一个 bat 文件,并在 PowerShell 中给出了一个条件,如果它失败,它应该显示一条消息“失败”,如果它通过它将显示一条消息“通过”。我的 bat 文件包含单元测试用例,所以如果所有测试用例都通过了,我会在 powershell 中收到一条消息“通过”,并且如果所有测试用例都失败或最后一个测试用例在 bat 文件中失败,我会收到一条消息“失败”但我没有收到显示消息“失败”如果我的第一次测试那么如果第一次测试“失败”并且第二次测试“通过”而不是收到失败消息,我会收到通过消息。我使用了 $LASTEXITCODE 条件,它将给出测试(通过/失败)状态的最后状态。有什么办法可以解决这个问题。会很有用的。
demo.bat
@echo off
echo "running test cases"
call npm run test folder1/file1/validate.test.js
call npm run test folder1/file2/validate.test.js
test.ps1
Write-Output "starting script......"
.\demo.bat
if ($LASTEXITCODE -gt 0) {
Write-Output "Failed"
}
else {
Write-Output "Passed"
}
【问题讨论】:
-
在批处理文件中,您可以在命令后添加
|| echo failed并在PowerShell 中查找它,例如.\demo.bat | findstr "failed" -
据我所知,那些
npm调用可以从 PoSh 内部运行。您是否尝试过将它们直接放入您的 PoSh 脚本中?
标签: powershell batch-file error-handling