节目期间
@echo off
cls
for /l %%i in (0,1,2) do (
set /p v="Enter Yes or No: "
if "%v%"=="Yes" (
echo RIGHT
) else (
echo WRONG
)
)
实际上,我从键盘输入是或否,根据我输入的内容,满足条件,问题是当我第一次运行程序时,我记得第一个值v
,然后不管我输入什么输入,v
我在最后一次运行程序时输入的值。这是一个示例:第一次运行:
Enter Yes or No: No
WRONG
Enter Yes or No: Yes
WRONG
Enter Yes or No: Yes
WRONG
我先输入否,然后它工作正常,然后是,从那开始,它现在不会改变变量v
中的值,最后我再次输入 YES,再次得到结果 WRONG
2nd run:
Enter Yes or No: Yes
RIGHT
Enter Yes or No: No
RIGHT
Enter Yes or No: No
RIGHT
在这里,她记住了上次运行的最后一个值,我输入 YES 等等......等等,也就是说,它记住了上次运行程序的最后一个值,并将它推到我试图调试的任何地方和外部循环它对我很有用,但底线是我正在处理一个文件,我不能没有循环这里是一个没有循环它如何工作的例子
@echo off
cls
set /p v="Enter Yes or No: "
if "%v%"=="Yes" (
echo RIGHT
) else (
echo WRONG
)
set /p v="Enter Yes or No: "
if "%v%"=="Yes" (
echo RIGHT
) else (
echo WRONG
)
set /p v="Enter Yes or No: "
if "%v%"=="Yes" (
echo RIGHT
) else (
echo WRONG
)
在这里,我已经在循环中做了三次相同的事情,但是现在如果我写 Yes,它输出 RIGHT,然后我写 No,它输出 WRONG,第三次我写 Yes,它输出 RIGHT,通常一切都按预期工作。这是一个应该处理文件的程序,我只是获取并处理一个文本文档,并且必须输入是或否,具体取决于读取的数据
@echo off
cls
set files=C:
for /f "delims=, eol=; skip=1 tokens=1,2" %%i in (users.txt) do (
echo User: %%i
set /p %choice%="Enter: "
if "%choice%"=="Yes" (
echo %choice%
echo %%j
) else (
echo %choice%
echo ERRRAIRI
)
)
我无法再理解如何使其在循环中按预期正常工作。
1 个回答