我在批处理脚本中编写一个非常简单的代码,我发现当我编写嵌套if时它会崩溃。 这是我的代码:
if !client!==CTRF (
if !db2_domain! EQU 1 (
call:upgrade_db_for_CTRF !rel_version!>> !log1! 2>&1
)
)
我的缩进是否有问题,或者我可能将括号放在错误的位置?
这就是我想要做的事情:
如果客户是CTRF 且 db2_domain = 1
调用此函数:upgrade_db_for_CTRF
或许您对另一种方式如何实现AND运算符有另一种想法?
答案 0 :(得分:0)
让我们使用双引号来确保我们不会捕获不需要的空格。我在此还假设您激活setlocal enabledelayedexpansion
if "!client!"=="CTRF" (
if "!db2_domain!"=="1" (
echo "!db2_domain!"
echo "!client!"
)
)
确认无效后,再次添加呼叫命令。另外,请考虑添加您遇到的失败。
答案 1 :(得分:0)
setlocal EnableDelayedExpansion
则不清楚!
代替%
。client
和db2_domain
进行故障保护,可以双引号等式或使用if defined
进行测试