我目前正在编写一个编译器,并测试各种可能的错误,我正在编写一个批处理脚本,其任务是:
我已经有一个可以运行的批处理脚本,它只回显正确的返回值
compiler test.c
pause
MIPS Output.IR
pause
java -jar (path)\Mars4_5.jar Output.asm $v0 $a0
echo Exit Code is %errorlevel%
pause
但是,当我尝试将其扩展为运行整个文件夹时,出现一个奇怪的问题,即在执行任何命令之前已经确定了错误级别
setlocal
set PATH=%PATH%;%~dp0
cd ..\stages\stage_1\valid
for %%c in (*.c) do (
compiler %%c
a Output.IR
java -jar (path)\Mars4_5.jar Output.asm $v0 $a0
rem putting pause here doesn't help
echo Exit Code is %errorlevel%
)
pause
对于所有测试用例,它都返回0。 0是几种情况的答案,但不是全部。更重要的是,如果您查看已执行的命令,则所有选项的错误级别都是预设的,因此cmd显示:
…
echo Exit Code is 0
我尝试环顾四周,但找不到任何与此问题相关的信息。我真的不知道如何解决这个问题。 该脚本如何进行编辑,以确保退出代码未预先确定?