gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 12:40:36 25 4
gpt4 key购买 nike

我遇到了一些奇怪的事情,我无法弄清楚。在我的批处理脚本中,我正在运行一个 java cli 程序,该程序连接到服务器,我这样做没有任何问题。但为了运行该程序,我让用户输入他们的服务器凭据。如果登录失败,我会收到一个“Error”字符串作为来自 java 程序的响应,然后我会询问用户是否要重试。

检查“错误”响应后,在询问用户是否要重试时出现问题。无论出于何种原因,我的 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 后,在命令提示符窗口中设置 输出。

另请参阅 IF statement in batch causing issues. Works when ran individually? 撰写的关于 MC ND 的答案。

关于java - 首次尝试时间批处理文件未捕获用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25140341/

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