批处理文件中括号不平衡且缺少运算符

问题描述 投票:2回答:3

下面的代码在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..
)
windows batch-file command-line
3个回答
2
投票

产生“不平衡括号”的唯一方法。和“缺少运算符”。与set /a命令一起使用:

>set /a (
Missing operand.

>set /a (-1
Unbalanced parenthesis. 

但是在您发布的代码中没有SET /A调用。

所以某些变量中有set /a作为字符串,或者在脚本的另一部分中失败。


0
投票

UIAM批处理代码没有“不平衡括号”错误消息-它只是默默失败。

似乎错误是来自Java代码。


0
投票

CMD shell已编程为解释要与代码块中的第一个开括号)相关联的第一个右括号(。>>

将方括号内的代码分组时,我遇到了相同的错误。在此处找到讨论:https://ss64.com/nt/syntax-brackets.html

可能会帮助他人解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.