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

时间:2014-04-16 19:04:38

标签: windows batch-file command-line

以下代码生成"不平衡的括号"在for循环开始和结束时的命令提示符上以及" Missing Operator"在for循环结束时。但是,代码工作正常。我在其他相关问题中发现它主要是由于嵌套括号而发生,但即便如此也不存在。

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..
)

3 个答案:

答案 0 :(得分:1)

产生“不平衡括号”的唯一方法。和“失踪的操作员”。使用set /a命令:

>set /a (
Missing operand.

>set /a (-1
Unbalanced parenthesis. 

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

在某些变量中,或者set /a为字符串,或者在脚本的其他部分失败。

答案 1 :(得分:0)

UIAM批处理代码没有"不平衡的括号"错误消息 - 它只是无声地失败。

看起来错误来自Java代码。

答案 2 :(得分:0)

CMD shell已被编程为解释要与代码块中的第一个开括号ValueError: invalid literal for base 8 int(): 09关联的第一个右括号)

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

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