标题: [原创] 批处理命令set截取字符练习工具 [打印本页]
作者: batman 时间: 2008-6-22 09:37 标题: 批处理命令set截取字符练习工具
&&其实,我在批处理实用技术中就发个这个工具的代码,只是那个考虑到原贴子的内容比较多很多人可能不会注意到,加上本人认为这个工具对新手理解和熟悉截取字符命令来说还是大有帮助的,所以才又单发了本贴,希望各位新人能利用本工具迅速掌握重要而实用的截取字符命令:- @echo off&color 1f&mode con cols=90 lines=12
- title 截取字符练习工具 by bat-zw19750516
- set tu=★★★★★★★★★★★★★★★■■■■■■■■■■■■■■■
- cls&echo.&echo 原始图案为:%tu%
- echo.&echo 注意前面有15个五角星后面有15个方块,等下截取后记得数一下。
- echo.&echo 命令形式为:%%tu:~2,1%%,其中的2为第一个参数可负可正可为零,1为第二个参数可负可正不为零。
- echo.&echo 为了方便重复练习没有设置退出,要退出请直接关闭窗口。
- echo.&echo 请按任意键开始练习。&pause>nul
- :begin
- set a=&set b=&set "c="
- cls&echo.&set /p a= 请输入第一个参数(应为小于30的整数):
- echo %a:-=%|findstr "[^0-9]"&&goto wrong
- if "%a%" equ "" goto wrong
- if %a% geq 30 goto wrong
- cls&echo.&set /p b= 请输入第二个参数(应为大于-30并不为零的整数):
- echo %b:-=%|findstr "[^0-9]"&&goto wrong
- if "%b%" equ "" goto wrong
- if %b% equ 0 goto wrong
- if %b% lss -30 goto wrong
- set /a c=30-a+b
- if %a% lss 0 if %b% lss 0 if %a% geq %b% goto wrong
- if %a% gtr 0 if %b% lss 0 if %c% leq 0 goto wrong
- cls&echo.&echo 原始图案为: %tu%
- echo.&echo 你输入的截取命令是: %%tu:~%a%,%b%%%
- echo.&call,echo 截取到的图案是 :%%tu:~%a%,%b%%%
- echo.&echo 请按任意键再次练习。&pause>nul&goto begin
- :wrong
- cls&echo.&echo 输入不合要求,请正确输入。&ping /n 2 127.1 >nul&goto begin
复制代码
作者: januapr 时间: 2009-8-9 22:52
batman这个例子还是不错的,有利于加深我们对字符截取的理解,
不这就是那星星和方块让我数得头都晕了,55555!
作者: januapr 时间: 2009-8-9 22:55
下面我把楼主老大的例子改了一下,这回应该不用数得头晕了,嘻嘻- @echo off&color a&mode con cols=90 lines=12
- title 截取字符练习工具 by bat-zw19750516
- set var=1234567890一二三四五六七八九零
- cls&echo.&echo 原始图案为:%var%
- echo.&echo 注意前面有10个阿拉伯数字后面有10个语文数字,等下截取后记得看下。
- echo.&echo 命令形式为:%%var:~m,n%%,其中的m为第一个参数可负可正可为零,n为第二个参数可负可正不为零。
- echo.&echo 为了方便重复练习没有设置退出,要退出请直接关闭窗口。
- echo.&echo 请按任意键开始练习。&pause>nul
-
- :begin
- set a=&set b=&set "c="
- cls&echo.&set /p a= 请输入第一个参数(应为小于20的整数):
- echo %a:-=%|findstr "[^0-9]"&&goto wrong
- if "%a%" equ "" goto wrong
- if %a% geq 20 goto wrong
- cls&echo.&set /p b= 请输入第二个参数(应为大于-20并不为零的整数):
- echo %b:-=%|findstr "[^0-9]"&&goto wrong
- if "%b%" equ "" goto wrong
- if %b% equ 0 goto wrong
- if %b% lss -20 goto wrong
- set /a c=20-a+b
- if %a% lss 0 if %b% lss 0 if %a% geq %b% goto wrong
- if %a% gtr 0 if %b% lss 0 if %c% leq 0 goto wrong
- cls&echo.&echo 原始图案为: %var%
- echo.&echo 你输入的截取命令是: %%var:~%a%,%b%%%
- echo.&call,echo 截取到的图案是 :%%var:~%a%,%b%%%
- echo.&echo 请按任意键再次练习。&pause>nul&goto begin
-
- :wrong
- cls&echo.&echo 输入不合要求,请正确输入。&ping /n 2 127.1 >nul&goto begin
复制代码
作者: batman 时间: 2009-8-10 01:35
呵呵,这么老的贴子也被你翻出来了。。。
作者: gigiqb 时间: 2009-8-10 11:25
我顶啊不错的帖子。。
作者: Hello123World 时间: 2011-4-29 10:46
batcher的链接给力
作者: Hello123World 时间: 2011-4-29 10:52
batman的代码有严重的问题。
1,3
3,3
都没有区别。
没有januapr 的好。
作者: jsbba 时间: 2011-5-5 08:28
学习工具都这么给力,管理员太有才了啊,太牛逼了
作者: zfkzp 时间: 2011-6-23 15:39
试了一下,第二个数应该这样提示:cls&echo.&set /p b= 请输入第二个参数(应为大于-11并不为零的整数)
我试过很多次,基本到-12就开始报错了。-11还可以的。
作者: xx2131232 时间: 2013-2-3 21:10
嗯嗯,set截取终于会一点点了/
作者: wangx 时间: 2013-9-16 14:50
echo %a:-=%|findstr "[^0-9]"&&goto wrong这一句怎么理解
330330 发表于 2011-8-18 12:23
这句话把负号替换掉,然后判断有没有非数字,有的话就要求重新输入
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |