下面的代码在for循环的开始和结尾处的命令提示符处以及在for循环的末尾处产生的“ Missing Operator”中均会生成“不平衡括号”。但是,代码工作正常。我在其他相关问题中发现,发生这种情况的主要原因是括号嵌套,但此处甚至不存在。
for /R .\sql_queries %%m in (*.sql) do (
Echo Querying: %%~nm
::Querying with GAT - Refer "for /?" for help on %%x variables
java -Xms64m -Xmx512m -cp %mypath% com.app.GenericAxlTool -i %ip% -v 6.0 -a %axlVer% -d %DBVer% -u %userName% -p %password% -c sqlselect -f %%m >output.tmp
cd sql
ren *.tsv %%~nm.tsv >output.tmp
move %%~nm.tsv ..\Reports >output.tmp
cd..
)
产生“不平衡括号”的唯一方法。和“缺少运算符”。与set /a
命令一起使用:
>set /a (
Missing operand.
>set /a (-1
Unbalanced parenthesis.
但是在您发布的代码中没有SET /A
调用。
所以某些变量中有set /a
作为字符串,或者在脚本的另一部分中失败。
UIAM批处理代码没有“不平衡括号”错误消息-它只是默默失败。
似乎错误是来自Java代码。
CMD shell已编程为解释要与代码块中的第一个开括号)
相关联的第一个右括号(
。>>
将方括号内的代码分组时,我遇到了相同的错误。在此处找到讨论:https://ss64.com/nt/syntax-brackets.html
可能会帮助他人解决问题。