批处理IF,SET ,FOR会用这三个命令的指点哪里不对!

来源:百度知道 编辑:UC知道 时间:2024/05/30 03:05:00
@echo off
set /p var=输入命令:
if %var% == 1 goto yes
:yes
echo 11
pause
我本来想在:YES这儿写打开记事本3次,可是试了多次不成功,所以改显示了,如果知道怎么打开记事本三次的话帮我写上;我上面的批处理不管输入什么数字全都可以跳转到YES,那我IF=1也就没什么意义了,可是我不知道哪里写错了,请高手指点下,要求:输入1(输入别的数字不跳转),跳转到YES,然后打开记事本三次,

if %var% == 1 goto yes
:yes

我不明白,当变量的值为1是转到yes;

可是不等于1的时候,按说应该顺序执行,也是yes,

这个if有什么意义?

按顺序不管你有没有输入1,做完if都是到yes那里,这没有错啊!要是想跳过去可以这样:

f %var% == 1 goto yes
goto quit
:yes
echo 11
:quit
pause

下面是我以前写的一个,可以作为结构上的参考。
@echo off
choice /c:asq /m autoip,staticip,quit
if errorlevel 3 goto quit
if errorlevel 2 goto staticip
if errorlevel 1 goto autoip
:autoip
netsh interface ip set address "本地连接" dhcp
netsh interface ip set dns "本地连接" dhcp
echo 成功设置为自动获取IP
goto quit
:staticip
netsh interface ip set address name="本地连接" static 10.10.138.100 255.255.255.0 10.10.138.20 1
netsh interface ip set dns "本地连接" static 202.119.230.8 primary
echo 成功设置为静态IP
goto quit
:quit
pause

@echo off
set /p var=输入命令:
if %var% ==1 goto yes
exit
if %var%=="" exit
:ye