gpt4 book ai didi

c# - 如何判断csc.exe编译是否成功

转载 作者:可可西里 更新时间:2023-11-01 10:05:01 24 4
gpt4 key购买 nike

我正在尝试使用 Windows 中的批处理文件随时随地编译一些 c sharp 文件。

这是.bat文件

C:\windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:exe /out:the.exe %1
the.exe

我的文件有一个 Console.Read() 调用来阻止窗口关闭并让用户看到执行的输出。我遇到的问题是,如果编译由于某种原因失败,窗口会显示编译问题并立即关闭,因为它永远不会到达 Read() 调用。

我可以在 .bat 文件的末尾使用 pause 但如果编译/执行成功,我需要按两次键关闭窗口。

我想知道的是编译成功与否。如果成功则执行 the.exe 或者如果不成功则不执行可执行文件,而是使用 pause 或其他方式停止窗口以便我可以查看错误。

最佳答案

假设编译器工具csc.exe返回一个错误码(ErrorLevel),你可以追加&& the.exe ||像这样暂停:

"C:\windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /t:exe /out:the.exe "%~1" && the.exe || pause

&&|| 是条件命令分隔符。第一个在没有错误的情况下执行下面的命令,即返回代码0(没有错误);第二个错误(非 0 返回代码)。

注意,这种方式只能区分编译成功或失败。可能会出现警告,这些警告可能不会反射(reflect)在返回的错误代码中。


要找出是否返回了可以通过内置变量 ErrorLevel 访问的错误代码,在 之后放置 echo %ErrorLevel% & pause csc.exe 命令行并运行脚本,一次会引发编译错误,一次不会引发编译错误。为此,您需要确保错误状态已重置——通过每次重新启动命令提示符,或通过执行 cmd/C exit 将其显式重置为 0 0 在你每次尝试之前。

关于c# - 如何判断csc.exe编译是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33598654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com