[英]Batch script - unexpected at this time error
以下是我在命令提示符下运行“ test.bat 1”命令的脚本,我的Java程序将1作为输入,它返回增量1,即2。这应该一直进行到值10。
以下是我的批处理脚本。
@echo off
set "java_output="
setlocal enableDelayedExpansion
:top
for /f "delims=" %%J in ('java -jar test.jar %*') do (
set "java_output=!java_output! %%J"
)
set java_output=%java_output%
echo %java_output%
if %java_output% NEQ 10 goto top
endlocal
下面是我在jar中的Java代码。
public class Test {
public static void main(String[] args)
{
System.out.println(args[0]);
int ret = Integer.parseInt(args[0]);
System.out.println(ret+1);
}
}
以下是我得到的输出。
C:> test.bat 1
1 2
2在这个时候是意外的。
谁能告诉我是什么问题。
由于您在java_output
的输出为1 2
(如显示),因此if
语句变为
if 1 2 neq 10 ...
if
期望if string1 op string2 ...
并将2
视为比较运算符,则必须是==
, equ
, neq
, lss
。 leq
, gtr
, geq
由于您是将数字和空格串在一起,因此除了不等于10
之外,几乎不可能是其他任何东西。
给出的响应:
set "java_output=!java_output! %%J"
)
set java_output=%java_output%
应该
set /a java_output=%%J"
)
的
set java_output=%java_output%
行什么也不做,是多余的。
set /a
分配一个数值或算术表达式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.