|
直接将如下代码写入 grldr 中进行测试:
--------------------------------------------------
echo
errorcheck on
errorcheck status
echo ----------
set a=1
# 这里 if 判断为 true ,kernel 将被执行,但不提示出错,也不停止脚本
if exist a && kernel ! echo VarNoExist
set a=
echo ----------
set a=1
# 这里 if 判断为 false ,kernel 不被执行,直接执行 echo VarNoExist
if not exist a && kernel ! echo VarNoExist
set a=
echo ----------
set a=1
# 这里 kernel 导致判断结果为 false 从而执行 echo VarNotExist
if exist a && kernel && echo VarExist ! echo VarNoExist
set a=
echo ----------
set a=1
set b=1
# 这里 if exist a && if exist b 是整个判断条件, 结果为 true 从而执行 echo VarExist
if exist a && if exist b && echo VarExist ! echo VarNoExist
set a=
echo ----------
# 奇怪的是,出错了,脚本也继续执行,不会停止
kernel
errorcmd
echo go! go! go!
errorcheck status
pause
--------------------------------------------------
执行结果如下:
--------------------------------------------------
Error check is now on
----------
----------
VarNoExist
----------
VarNoExist
----------
VarExist
----------
Warning! No such command: errorcmd
go! go1 go!
Error check is now on
--------------------------------------------------
其实 if exist a 或 if exist b 就是一条语句,和 kernel 差不多,控制 && 或 || 或 !之后的语句是否被执行
说到底,还是没有 if 语句,只有 && 和 || 和 !
如果 if 语句能像 DOS 中的那样就好了,可以将条件判断和执行代码分开,可以一次执行多条代码
if exist SomeVar (
DoSomething1
DoSomething2
DoSomething3
) else (
DoAnotherthing1
DoAnotherthing2
DoAnotherthing3
)
期待 GRUB4DOS 功能的进一步加强!
|
|