[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
用set命令接收到的"输入数字"是什么类型的变量

TOP

本帖最后由 wpNature 于 2011-7-8 09:46 编辑

The ELSE clause must occur on the same line as the command after the IF.
For example:

IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)

The below example would NOT work because the del command needs to be terminated by a newline:

IF EXIST filename. del filename. ELSE echo filename. missing

Nor would the below example work, since the ELSE command must be on the same line as the end of the IF command:

IF EXIST filename. del filename.
ELSE echo filename. missing

The below example would work if you want it all on one line:


IF EXIST filename. (del filename.) ELSE echo filename. missing


PS:SEE MORE INFORMATION ABOUT ABOVE :http://www.computerhope.com/if.htm
一生的努力,才能求的灵魂的安宁。

TOP

less than or equal
这个应该是小于或等于吧?

TOP

less than or equal
这个应该是小于或等于吧?

TOP

本帖最后由 zaixinxiangnian 于 2011-8-13 22:21 编辑

回复 "10"  
初学者大家见笑了
code:
@echo off
set /p val=请输入值:>nul
if "%val%" equ "0" (echo 你输入了%val%&goto d) else goto abc
:abc
if "%val%" equ "1" (echo 你输入了%val%&goto d) else goto ab
:ab
if "%val%" equ "2" (echo 你输入了%val%&goto d) else goto g
:g
color 16
echo 你的输入错误
:d
pause
1

评分人数

    • cjiabing: 超过两行的代码请用框框括起来。如何用code ...PB -6

TOP

回复 11# xiong8707
  1. @echo off
  2. :bigen
  3. cls
  4. set /p s=请输入1 或 2   
  5. if "%s%"=="1" goto a
  6. if "%s%"=="2" goto b
  7. goto err
  8. :err
  9. color 4f
  10. echo.
  11. echo  错误, 你输入的是"%s%"不是数字1或2 请重新输入
  12. pause>nul 2>nul
  13. goto bigen
  14. :a
  15. color 2f
  16. cls
  17. echo 正确!你输入的是%s%=1
  18. pause>nul 2>nul
  19. exit
  20. :b
  21. color 2f
  22. cls
  23. echo 你输入的是%s%=2
  24. pause>nul 2>nul
  25. exit
复制代码

TOP

你以前的代码,我要是不输入1或2呢,又是怎么结果

TOP

本帖最后由 cjiabing 于 2011-8-20 00:05 编辑

#46、48、49、51楼
语法是规定的东西,没有太多的why,记住就行。
以下是一个常见的if命令的使用方法,可以用来创建菜单,比较大小,判断条件等。
IF命令帮助信息中,比较运算符可以是:
    EQU - 等于,同“==”
    NEQ - 不等于
    LSS - 小于
    LEQ - 小于或等于
    GTR - 大于
    GEQ - 大于或等于

具体使用:
  1. @echo off
  2. :start
  3. echo;
  4. echo;    请分别输入字母  a 和 A
  5. echo;    请分别输入数字 3、10、16
  6. echo;    退出请输入 Q
  7. echo;
  8. set var=
  9. ::清空延迟的变量。
  10. set /p var=  请输入任意字符,比如“A”:
  11. ::“set /p 变量名=提示语”用来与用于交互,给用户输入内容。
  12. if  "%var%"=="" goto start
  13. ::假如没有输入则返回重新输入。
  14. if  /i  %var% equ Q goto end
  15. ::使用goto命令可以跳到其他标签子项中。
  16. if  %var%  equ  a  echo 你输入了小写字母 a
  17. if  %var%  equ  A  echo 你输入了大写字母 A
  18. if  /i  %var%  == a  echo 你输入了字母 a (不分大小写)
  19. if  %var% lss 10 echo 你输入的 %var% 小于 10.
  20. if  %var% geq 10 echo 你输入的 %var% 大于等于 10.
  21. if  %var% lss 20 if %var% gtr 10 echo 你输入的 %var% 介于 20 和 10 之间。
  22. ::可以多个if条件嵌套,用于复杂的判断。
  23. echo 输入结束。
  24. pause
  25. goto start
  26. :end
  27. echo;
  28. echo  你选择了退出。
  29. pause
复制代码
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

本帖最后由 aber02zzl 于 2011-9-21 10:32 编辑

这是我自己学习后的一个例子,搞了好久,还有很多不完善的地方,大家勉强看看吧
  1. @echo off
  2. :0
  3. cls
  4. echo #################
  5. echo how are you
  6. echo 1.how are you
  7. echo 2.nice to see you
  8. echo 3.bye
  9. echo #################
  10. echo.
  11. set /p s=choose:
  12. if %s% equ 1 goto a
  13. if %s% equ 2 goto b
  14. if %s% equ 3 goto end
  15. if %s% neq 1 goto 4
  16. if %s% neq 2 goto 4
  17. if %s% neq 3 goto 4
  18. :a
  19. echo how are you
  20. pause >null
  21. goto 0
  22. :b
  23. echo nice to see you
  24. pause>null
  25. goto 0
  26. :4
  27. echo error
  28. pause>null
  29. goto 0
  30. :end
复制代码
发完仔细检查发现这里面有个错误,欢迎大家指正!

TOP

这是我改正后的,应该没有逻辑错误了
  1. @echo off
  2. :0
  3. cls
  4. echo #################
  5. echo how are you
  6. echo 1.how are you
  7. echo 2.nice to see you
  8. echo 3.bye
  9. echo #################
  10. echo.
  11. set /p s=choose:
  12. if %s% equ 1 goto a
  13. if %s% equ 2 goto b
  14. if %s% equ 3 goto end
  15. echo error! input again!
  16. pause>null
  17. cls
  18. goto 0
  19. :a
  20. echo how are you
  21. pause >null
  22. goto 0
  23. :b
  24. echo nice to see you
  25. pause>null
  26. goto 0
  27. :end
复制代码

TOP

学习了。。。。。。。。。。。。

TOP

if语句如果有用到括号来括住条件符合时要执行的语句时,它的执行语句前的括号“(”必须与if语句在同一行,而后面的括号")"必须与else在同一行。而且else的执行语句前的括号也要与else在同一行。如:
if a=b (
   echo a
) else (
   echo b
)
或是:
if a=b (echo a) else (echo b)

TOP

if exist 1.txt (echo exsited>1.txt) else (cd.>1.txt)执行两遍,运行结果不一样

TOP

if exist 1.txt (echo exsited>1.txt) else (cd.>1.txt)执行两遍,运行结果不一样
lazdkiy 发表于 2011-11-7 16:45



    楼上误人啊,exsited这个东西我搞了十来分钟,原来就是把这个字符重定向到1.txt文本里面啊!!建议不要用让生手模拟两可的东西啊,这里的exsited让我误解成命令了!!


顺便请教下回答发这个贴子时论坛给出的验证问题是:set /a a=55^<^<5

运行后得到了1760这个结果,还望知道这个结果怎么来的人帮忙解释下,THS!

TOP

  1. @echo off
  2. echo.&echo.
  3. set /p str = 请输入密码:
  4. if "str"=="qwer" (echo 密码正确!)else(echo 密码错误!)
  5. pause
复制代码
执行不了,求指教
我们觉得崖畔的鲜花很美,那是因为它们敢于踏出迈向天空的一步!

TOP

返回列表