gpt4 book ai didi

java - 批处理脚本 - 此时出现意外错误

转载 作者:行者123 更新时间:2023-12-02 02:50:30 25 4
gpt4 key购买 nike

下面是我在命令提示符下运行“test.bat 1”命令的脚本,1 被我的 java 程序作为输入,它返回递增的 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:>测试.bat 1
1 2
2 这个时候是出乎意料的。

谁能告诉我出了什么问题。

最佳答案

由于 java_output 中的输出为 1 2 (如显示的),因此 if 语句变为

if 1 2 neq 10 ...

if 期望 if string1 op string2 ... 并将 2 视为比较运算符,该运算符必须是 == 之一equneqlssleqgtrgeq

由于您将数字与空格串在一起,因此除了不等于10之外,它极不可能是任何其他值。

<小时/>

给出的回复:

  set "java_output=!java_output! %%J" 
)
set java_output=%java_output%

应该是

  set /a java_output=%%J"
)

set java_output=%java_output%

该行不执行任何操作并且是多余的。

set/a 分配一个数值或算术表达式。

关于java - 批处理脚本 - 此时出现意外错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43913974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com