找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: youxi01

批处理set命令入门训练

[复制链接]
发表于 2011-8-29 00:55:14 | 显示全部楼层
本帖最后由 qc5111 于 2011-8-29 00:58 编辑
  1. @echo off
  2. cls
  3. set /p a=请输入第一位数
  4. set /p b=请输入第二位数
  5. set /a c=%a%+%b%
  6. echo %c%
  7. pause
复制代码
发表于 2011-8-29 16:40:42 | 显示全部楼层
回复 15# vicp7764


    请问“SUM”在SET中和其它的任何可设的变量一样吗?
不明白这段是怎么求出数值之间的和的
  1. @echo off
  2. for /l %%i in (100,-2,0) do set /a sum+=%%i
  3. echo %sum%
  4. pause
复制代码
发表于 2011-8-29 16:41:49 | 显示全部楼层
1
  1. @echo off
  2. set /p val=请输入值:
  3. echo %val%
  4. pause>nul
复制代码
2.
  1. @echo off
  2. set /p m=请输入值1 :
  3. set /p n=请输入值2 :
  4. set /a val=%m%+%n%
  5. echo %val%
  6. pause>nul
复制代码
发表于 2011-10-19 12:39:09 | 显示全部楼层
请问是否要像13楼说的一样,先检查时候输入的是数字,不是的话给出提示?
另外就是 批处理里面有数据类型这个概念吗?
发表于 2011-10-19 13:15:15 | 显示全部楼层
回复 189# daiyang622


没有数据类型
发表于 2011-10-30 14:38:45 | 显示全部楼层
  1. @echo off
  2. set /p num1=num1
  3. set /p num2=num2
  4. set /a sum=%num1%+%num2%
  5. echo sum=%sum%
  6. pause>nul
复制代码
发表于 2011-11-10 14:32:51 | 显示全部楼层

  1. 1.
  2. @echo off
  3. title 输入显示
  4. set /p a=please input:
  5. echo 你输入的是 %a%
  6. pause>nul
  7. 2.
  8. @echo off
  9. title 输入两数求和
  10. set /p a=please input first num: && set /p b=please input second num:
  11. echo 你输入的是 %a% 和 %b%
  12. set /a c=%a%+%b%
  13. echo 他们的和是%c%
  14. pause>nul
复制代码
发表于 2011-11-27 23:08:51 | 显示全部楼层
1,设置等待用户输入,并将输入结果显示在批处理窗口

  1. @echo off
  2. set /p var=请输入
  3. echo 输入数据如下:
  4. echo::************
  5. echo %var%
  6. pause>nul
复制代码
2,将用户输入的第一数字和第二个数字之和显示在批处理窗口

  1. @echo off
  2. set /p a=请输入数字
  3. set /p b=请输入数字
  4. set /a c=a+b
  5. echo %c%
  6. pause>nul
复制代码
我想在第二题中加入可以判断输入的是否数字,如果是非数字则提示重新输入,现在还不知道怎么来实现。
如果有高手可以指点,先表示感谢。
发表于 2012-1-6 10:38:52 | 显示全部楼层

  1. @echo off
  2. set /p str=请输入要输入的2位数字,将计算第一位与第二位的和:
  3. echo 你输入的数字:%str%
  4. echo 第一位数字:%str:~0,1%
  5. echo 第二位数字:%str:~1,1%
  6. set /a c=%str:~0,1%+%str:~1,1%
  7. echo 和:%str:~0,1%+%str:~1,1%=%c%
  8. pause>nul
复制代码
发表于 2012-2-18 15:01:33 | 显示全部楼层

  1. @echo off
  2. set /p a=请输入三位数字:
  3. echo %a%

复制代码

  1. @echo off
  2. set /p a=请输入a的值:
  3. set/p b=请输入b的值:
  4. set /a c=%a%+%b%
  5. echo %c%

复制代码
发表于 2012-2-25 17:54:37 | 显示全部楼层
本帖最后由 几维kiwi 于 2012-2-25 17:56 编辑

写了一个较完整的版本,写的不好的地方,请大家指出一下,多谢!
  1. ::设置等待用户输入,并将输入结果显示在批处理窗口;
  2. ::将用户输入的第一数字和第二个数字之和显示在批处理窗口;

  3. @echo off
  4. echo .........Summary Program..........

  5. rem 用户输入两个数字
  6. :begin
  7. echo.
  8. set num1=
  9. set num2=
  10. set /p num1=^> please input number1:
  11. set /p num2=^> please input number2:

  12. rem 检查输入的字符是否为数字
  13. set numFlag=true
  14. call :checkNumber %num1%
  15. if "%result%" == "false" echo error:number1 is not a number&(set numFlag=false)
  16. call :checkNumber %num2%
  17. if "%result%" == "false" echo error:number2 is not a number&(set numFlag=false)
  18. if "%numFlag%" == "false" goto :begin

  19. rem 如果输入的都是数字,则对数字相加,并输出结果
  20. set /a sum=num1+num2
  21. echo ==========RESULT============
  22. echo num1=%num1%
  23. echo num2=%num2%
  24. echo num1+num2=%sum%
  25. echo ============================

  26. rem 是否重来?
  27. echo.
  28. set /p redo=try again? (y or n)
  29. if /i "%redo%"=="y" goto :begin
  30. echo enter any key to exit ...
  31. pause>nul
  32. goto :eof

  33. rem 定义函数:判断是否为数字
  34. rem 判断方法:通过判断字符串是否被数字分割来判断是否包含数字
  35. :checkNumber
  36. set n=%1
  37. if not "%n%"=="" (
  38.         for /f "delims=1234567890" %%a in ("%n%@") do if "%%a"=="@" (set result=true) else (set result=false)
  39. ) else (
  40.         set result=false
  41. )
  42. goto :eof
复制代码
发表于 2012-4-24 21:35:25 | 显示全部楼层
楼上的写的不错啊,就是没判断空格啊,有空格就错了,学习
建议版主写个完整版点评下,能判断是不是输入数字的
发表于 2012-5-24 15:43:18 | 显示全部楼层

  1. @echo off
  2. title abc
  3. :0
  4. set /p hh=请输入两位数
  5. echo %hh%|findstr "^[0-9][0-9]">tmp.tmp
  6. for /f %%i in (tmp.tmp) do ( if %%i == %hh% echo 格式正确

  7. &goto 1)
  8. echo 输入格式错误
  9. pause
  10. del /q tmp.tmp
  11. goto 0
  12. :1
  13. echo %hh%
  14. set ss1=%hh:~0,1%
  15. set ss2=%hh:~1,1%
  16. set /a ss=ss1+ss2
  17. echo %ss%
  18. goto 0
  19. pause>nul
复制代码
发表于 2012-8-12 00:06:06 | 显示全部楼层
回复 197# 几维kiwi


    第44行 %%a in ("%n%@") do if "%%a"=="@"为什么括号有个@?  为什么%%a==@?
发表于 2012-11-19 18:38:02 | 显示全部楼层
我来交第一题作业:

  1. @echo off
  2. set /p input=Please input any number:
  3. echo What you inputed is:%input%
  4. set b1=%input:~0,1%
  5. set b2=%input:~1,1%
  6. set /a sum=b1+b2
  7. echo the sum of byte1 and byte2 is:%sum%&pause>nul
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:39 , Processed in 0.021710 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表