Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 首次尝试时批处理文件未捕获用户输入_Java_Batch File - Fatal编程技术网

Java 首次尝试时批处理文件未捕获用户输入

Java 首次尝试时批处理文件未捕获用户输入,java,batch-file,Java,Batch File,我有一件奇怪的事情,我搞不懂。在我的批处理脚本中,我正在运行一个java cli程序,该程序连接到一个服务器,我在这方面没有问题。但是为了运行程序,我在他们的服务器凭据中输入了用户类型。如果登录失败,我会从java程序中得到一个“Error”字符串作为响应,然后询问用户是否要重试 在检查“Error”响应后,当询问用户是否要重试时,出现了我的问题。无论出于何种原因,我的tryAgain变量中都不会捕获/存储任何内容 for /f %%i in ('java -jar cli-launcher.j

我有一件奇怪的事情,我搞不懂。在我的批处理脚本中,我正在运行一个java cli程序,该程序连接到一个服务器,我在这方面没有问题。但是为了运行程序,我在他们的服务器凭据中输入了用户类型。如果登录失败,我会从java程序中得到一个“Error”字符串作为响应,然后询问用户是否要重试

在检查“Error”响应后,当询问用户是否要重试时,出现了我的问题。无论出于何种原因,我的tryAgain变量中都不会捕获/存储任何内容

for /f %%i in ('java -jar cli-launcher.jar -a https://127.0.0.1:8000 -u admin -p admin -s someOtherScript.txt) do set response=%%i

::Something about this IF statement is causing an issue
IF NOT %response::=%==Error (echo "No Error"
) else (SET /p tryAgain=Try Again: 
  echo "%tryAgain%"
)
编辑:

看起来我的问题与我对响应字符串的检查有关。当我取出tryAgain用户捕获时,它工作正常。有人能看出我做错了什么吗

for /f %%i in ('java -jar cli-launcher.jar -a https://127.0.0.1:8000 -u admin -p admin -s someOtherScript.txt) do set response=%%i

::This works fine
SET /p tryAgain=Try Again: 
echo "%tryAgain%"
您可以使用以下命令:

@echo off
setlocal EnableDelayedExpansion
for /f %%i in ('java -jar cli-launcher.jar -a https://127.0.0.1:8000 -u admin -p admin -s someOtherScript.txt) do set response=%%i

if not "!response::=!"=="Error" (
   echo "No Error"
) else (
   Set /p "tryAgain=Try Again (y/n)? " 
   echo "!tryAgain!"
)
endlocal
setlocal EnableDelayedExpansion
做了什么,为什么
而不是
%
,在输入
set/?
help set
后,在命令提示窗口中的命令
set
输出帮助中解释了这一点


还可以查看作者的回答。

我很忙,但简而言之:搜索“延迟扩展”或“setlocal enabledelayedexpansion”也可以在
中找到一些帮助和示例,以获取/?