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

[文本处理] [已解决]批处理if如何嵌套使用,字符串如何进行加减操作?

小弟在学习批处理时,遇到两个问题,请教各位:
1 在使用if语句的时候,如何嵌套?
我是这样写的,但提示错误:
  1. @echo off
  2. echo 请选择区域1——A区  2——B区
  3. set/p isAB=    请选择:
  4. echo 请选择组别1——1组  2——2组
  5. set /p group=    请选择:
  6. if %isAB% ==1 (
  7. if %group% ==1 echo 您在A区1组
  8. if %group% ==2 echo 您在A区2组
  9. if %isAB% ==2 (
  10. if %group% ==1 echo 您在B区1组
  11. if %group% ==2 echo 您在B区2组
  12. pause
复制代码
2 字符串如何加减?
我想根据一个IP地址,算出他上一个IP地址,但字符串不知道怎么加减?
  1. @echo off
  2. set /p address=   请输入IP地址:
  3. for /f "delims=. tokens=1-4" %%a in ("%address%") do set last=%%a.%%b.%%c.%%d-1
  4. echo 您的上一个IP地址为:%last%
复制代码

[ 本帖最后由 zhiplane 于 2010-7-1 22:39 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

1.把你的中文(全角)括号改成英文即可
2.
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p address=   请输入IP地址:
  3. for /f "delims=. tokens=1-4" %%a in ("%address%") do (
  4. set/ad=%%d-1
  5. set last=%%a.%%b.%%c.!d!
  6. )
  7. echo 您的上一个IP地址为:%last%
  8. pause
复制代码
OrzDEF

TOP

谢谢Seter!!
你说的方法确实可以!!

TOP

今天排了一天的错,感悟两点:
1 括号一定要注意用英文的,否则很麻烦。最好能调个好的字体,windows记事本自带的那种就不错,可以一眼分出来。
2 如果往文件里写东西,如: echo abc>>a.txt 是会出问题的,在>>的前边一定要留有空格:
echo abc  >>a.txt才可以。

TOP

回复 4楼 的帖子

1、建议使用支持语法高亮的编辑器,比如:Notepad++
2、建议把重定向符号写到前面,比如:>>a.txt echo abc
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表