爱上你有道理吗?批处理问题高手指点迷津!!

来源:百度知道 编辑:UC知道 时间:2024/06/08 05:09:24
@echo off
echo 请输入y或n
set /p var=你喜欢我吗?
for /L %%a in (1,1,1) do @if %var% == n goto end else cls
cls
echo 我太高心了,因为我也喜欢你!
pause >nul
exit
:end
echo 你太没良心了,枉我还一直喜欢你!
pause >nul
exit

高手请帮忙把这个批处理的for /L %%a in (1,1,1) do @if %var% == n goto end else cls 这段命令做个详细的解释.这个批处理是我自己写的 当然for这段是粘贴的,大概意思也懂点,就是有点含糊希望能得到一个清晰的解答.
谢谢两位的回答.我知道有多种办法可以实现目的.我是想明白那些命令的意思.

for /L %%a in (1,1,1) do @if %var% == n goto end else cls
这里的for /l表示以增量形式从开始到结束的一个数字序列,比如你在括号里面是(1,1,10) 将产生序列 1 2 3 4 5 6 7 8 9 10,(5,-1,1) 将产生序列 (5 4 3 2 1),(1,1,10)换句话说你的FOR调用了10次,每次步骤是1也就是step=1,你的(1,1,1)是调用的一次step=1,也就是循环了一次,%%a只有被赋值了一次,也就是1,后面的do语句也是只运行了一次,if %var% == n goto end ,if判断语句, var就是一个环境变量,这里没有用到延迟变量,所以它的初值是null,这里用于判断如果var的值等于字符n的话就跳转到:end否则清屏(其实你不能完整选择N后的清屏,还有if前面的@是多余的,因为前面已经有@echo off)

其实你的语句可以简单点如下:
@echo off
echo 请输入y或n
set /p var=你喜欢我吗?
if %var% == n goto end
cls
echo 我太高心了,因为我也喜欢你!
pause >nul
exit
:end
cls
echo 你太没良心了,枉我还一直喜欢你!
pause >nul
exit

::如果还有疑问qq229964954

::不用那么麻烦
@echo off
echo 你喜欢我吗?(y,n)
set /p var=
if "%var%"=="y" echo 我太高心了,因为我也喜欢你! &pause>nul&exit
echo 你太没良心了,枉我还一直喜欢你!
pause >nul

FOR /L %variable IN (start,step,end) DO command [command-parameters]

该集表示以增量形式从开始到结束的一