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

[原创] 批处理命令set截取字符练习工具

&&其实,我在批处理实用技术中就发个这个工具的代码,只是那个考虑到原贴子的内容比较多很多人可能不会注意到,加上本人认为这个工具对新手理解和熟悉截取字符命令来说还是大有帮助的,所以才又单发了本贴,希望各位新人能利用本工具迅速掌握重要而实用的截取字符命令:
  1. @echo off&color 1f&mode con cols=90 lines=12
  2. title 截取字符练习工具 by bat-zw19750516
  3. set tu=★★★★★★★★★★★★★★★■■■■■■■■■■■■■■■
  4. cls&echo.&echo  原始图案为:%tu%
  5. echo.&echo  注意前面有15个五角星后面有15个方块,等下截取后记得数一下。
  6. echo.&echo  命令形式为:%%tu:~2,1%%,其中的2为第一个参数可负可正可为零,1为第二个参数可负可正不为零。
  7. echo.&echo  为了方便重复练习没有设置退出,要退出请直接关闭窗口。
  8. echo.&echo  请按任意键开始练习。&pause>nul
  9. :begin
  10. set a=&set b=&set "c="
  11. cls&echo.&set /p a= 请输入第一个参数(应为小于30的整数):
  12. echo %a:-=%|findstr "[^0-9]"&&goto wrong
  13. if "%a%" equ "" goto wrong
  14. if %a% geq 30 goto wrong
  15. cls&echo.&set /p b= 请输入第二个参数(应为大于-30并不为零的整数):
  16. echo %b:-=%|findstr "[^0-9]"&&goto wrong
  17. if "%b%" equ "" goto wrong
  18. if %b% equ 0 goto wrong
  19. if %b% lss -30 goto wrong
  20. set /a c=30-a+b
  21. if %a% lss 0 if %b% lss 0 if %a% geq %b% goto wrong
  22. if %a% gtr 0 if %b% lss 0 if %c% leq 0 goto wrong
  23. cls&echo.&echo  原始图案为: %tu%
  24. echo.&echo  你输入的截取命令是: %%tu:~%a%,%b%%%
  25. echo.&call,echo  截取到的图案是 :%%tu:~%a%,%b%%%
  26. echo.&echo  请按任意键再次练习。&pause>nul&goto begin
  27. :wrong
  28. cls&echo.&echo  输入不合要求,请正确输入。&ping /n 2 127.1 >nul&goto begin
复制代码
***共同提高***

echo %a:-=%|findstr "[^0-9]"&&goto wrong这一句怎么理解
330330 发表于 2011-8-18 12:23

这句话把负号替换掉,然后判断有没有非数字,有的话就要求重新输入

TOP

嗯嗯,set截取终于会一点点了/

TOP

试了一下,第二个数应该这样提示:cls&echo.&set /p b= 请输入第二个参数(应为大于-11并不为零的整数)
我试过很多次,基本到-12就开始报错了。-11还可以的。

TOP

学习工具都这么给力,管理员太有才了啊,太牛逼了
读尽天下好书,掌握前沿知识。

TOP

batman的代码有严重的问题。
1,3
3,3
都没有区别。
没有januapr 的好。

TOP

batcher的链接给力

TOP

我顶啊不错的帖子。。

TOP

呵呵,这么老的贴子也被你翻出来了。。。
***共同提高***

TOP

下面我把楼主老大的例子改了一下,这回应该不用数得头晕了,嘻嘻
  1. @echo off&color a&mode con cols=90 lines=12
  2. title 截取字符练习工具 by bat-zw19750516
  3. set var=1234567890一二三四五六七八九零
  4. cls&echo.&echo  原始图案为:%var%
  5. echo.&echo  注意前面有10个阿拉伯数字后面有10个语文数字,等下截取后记得看下。
  6. echo.&echo  命令形式为:%%var:~m,n%%,其中的m为第一个参数可负可正可为零,n为第二个参数可负可正不为零。
  7. echo.&echo  为了方便重复练习没有设置退出,要退出请直接关闭窗口。
  8. echo.&echo  请按任意键开始练习。&pause>nul
  9. :begin
  10. set a=&set b=&set "c="
  11. cls&echo.&set /p a= 请输入第一个参数(应为小于20的整数):
  12. echo %a:-=%|findstr "[^0-9]"&&goto wrong
  13. if "%a%" equ "" goto wrong
  14. if %a% geq 20 goto wrong
  15. cls&echo.&set /p b= 请输入第二个参数(应为大于-20并不为零的整数):
  16. echo %b:-=%|findstr "[^0-9]"&&goto wrong
  17. if "%b%" equ "" goto wrong
  18. if %b% equ 0 goto wrong
  19. if %b% lss -20 goto wrong
  20. set /a c=20-a+b
  21. if %a% lss 0 if %b% lss 0 if %a% geq %b% goto wrong
  22. if %a% gtr 0 if %b% lss 0 if %c% leq 0 goto wrong
  23. cls&echo.&echo  原始图案为: %var%
  24. echo.&echo  你输入的截取命令是: %%var:~%a%,%b%%%
  25. echo.&call,echo  截取到的图案是 :%%var:~%a%,%b%%%
  26. echo.&echo  请按任意键再次练习。&pause>nul&goto begin
  27. :wrong
  28. cls&echo.&echo  输入不合要求,请正确输入。&ping /n 2 127.1 >nul&goto begin
复制代码

TOP

batman这个例子还是不错的,有利于加深我们对字符截取的理解,
不这就是那星星和方块让我数得头都晕了,55555!

TOP

返回列表