首页 > 解决方案 > 检测 if-else 输出 PowerShell

问题描述

我正在尝试制作一个 PowerShell 字符串来编译程序,如果编译正确,我想打开该程序。我要解决的问题是了解 PowerShell 如何理解MiniGW编译器何时使用gcc命令(用于 C 文件)抛出正确的结果。

知道这一点== TRUE并且== FALSE在 PowerShell 中不被接受,我尝试了一个if没有任何逻辑运算符的

if(gcc '.\FileINeedToCompile.c'){
  Write-Host Correct;
} else {
  Write-Host NotCorrect;
}

NotCorrect但是在程序正确编译以及未编译的情况下,我得到了结果。

我还尝试了一些逻辑运算符的变体,-eq例如

if((gcc '.\FileINeedToCompile.c') -eq $FALSE)

但我总是得到else声明的结果。

我到处搜索,我真的不知道如何使它工作。感谢帮助。

标签: powershellpowershell-2.0

解决方案


您可以运行 gcc 并捕获错误代码以进行处理。我没有使用 gcc 进行测试,但我确实使用了一个小型控制台应用程序进行了测试,并且假设返回代码 0 是成功的,这可以正常工作。

gcc '.\FileINeedToCompile.c'
if($LASTEXITCODE -eq 0){
  Write-Host Correct;
} else {
  Write-Host NotCorrect;
}

更多信息可以在这里找到。


推荐阅读