我正在尝试使用Windows中的批处理文件随时编译一些c文件。
以下是.bat
文件
C:\windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:exe /out:the.exe %1
the.exe
我的文件有一个Console.Read()
调用来阻止窗口关闭,并让用户看到执行的输出。我遇到的问题是,如果编译由于某种原因失败,窗口会显示编译问题并立即关闭,因为它永远不会到达Read()
调用。
我可以在pause
文件的末尾使用.bat
但是如果编译/执行成功,我需要按两次键关闭窗口。
我想知道的是编译是否成功。如果成功则执行the.exe
或者如果不成功则执行可执行文件,而不是pause
或其他内容来停止窗口,以便我可以看到错误。< / p>
答案 0 :(得分:3)
假设编译器工具<script>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http,$filter) {
var param = getParameterByName('id');
$http.get("http://socialdeal4u.com/demo/survey/api-delete.php?id="+param)
.success(function (response) { $scope.x = response; });
</script>
返回错误代码(csc.exe
),您可以像这样附加ErrorLevel
:
&& the.exe || pause
"C:\windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /t:exe /out:the.exe "%~1" && the.exe || pause
和&&
是条件命令分隔符。第一个在没有错误的情况下执行以下命令,即返回代码||
(无错误);出现错误时的第二个(非0
返回码)。
请注意,此方法只能区分编译成功或失败。可能会出现警告,这些警告可能不会反映在返回的错误代码中。
要确定是否返回了内置变量0
可以访问的错误代码,请将ErrorLevel
放在echo %ErrorLevel% & pause
命令行之后并运行脚本,并且一旦没有引起编译错误。为此,您需要确保重置错误状态 - 通过每次重新启动命令提示符,或者通过在每次尝试之前执行csc.exe
将其重置为0
来重置错误状态