标题: [数值计算] [已解决]echo %a: =%这句代码中的冒号是什么意思? [打印本页]
作者: xss 时间: 2011-8-18 21:00 标题: [已解决]echo %a: =%这句代码中的冒号是什么意思?
本帖最后由 pcl_test 于 2016-7-17 12:28 编辑
我在“批处理教学&资料“版块中曾经看到一个批处理代码段,其中有一语句如下:
echo %a: =%|findstr "[^0-9]"&&goto wrong
请问上面语句中在%a后面的那个冒号:是啥意思?在这里起什么作用?是不是在这整条语句中非得使用它?
在下菜鸟一个,实在不懂其中奥妙,还望大侠们多多指教,不胜感激!
作者: CUer 时间: 2011-8-18 22:05
原文地址是?
没有上下文很难搞清楚作者的用意
作者: bingxing8000 时间: 2011-8-18 22:10
- @echo off&color 1f&mode con cols=60 lines=10
- title 限定输入格式批处理 by cn-dos zw19750516
- :begin
- cls&echo.&echo.&echo 请输入三个十进制数字,中间请用空格格开。
- set a=&echo.&set /p a= 请在此处输入数字:
- echo %a: =%|findstr "[^0-9]"&&goto wrong
- for %%i in (%a%) do set str=%%i&call:lp
- if %n% neq 3 set n=0&goto wrong
- cls&echo.&echo.&echo 你所输入的三个数值字为:%a% 均为合法的十进制数值。
- echo.&echo 继续测试请按任意键,退出请关闭窗口。
- pause>nul&goto begin
- :lp
- set /a n+=1
- if "%str:~,1%" equ "0" if "%str:~1%" neq "" set n=0&goto wrong
- goto :eof
- :wrong
- cls&echo.&echo.&echo 输入的数值不是合法的十进制数值,或数值不为三个。&ping /n 2 127.1>nul&goto begin
复制代码
源码应该是这个
好像是替换的意思
作者: bingxing8000 时间: 2011-8-18 22:10
- @echo off&color 1f&mode con cols=60 lines=10
- title 限定输入格式批处理 by cn-dos zw19750516
- :begin
- cls&echo.&echo.&echo 请输入三个十进制数字,中间请用空格格开。
- set a=&echo.&set /p a= 请在此处输入数字:
- echo %a: =%|findstr "[^0-9]"&&goto wrong
- for %%i in (%a%) do set str=%%i&call:lp
- if %n% neq 3 set n=0&goto wrong
- cls&echo.&echo.&echo 你所输入的三个数值字为:%a% 均为合法的十进制数值。
- echo.&echo 继续测试请按任意键,退出请关闭窗口。
- pause>nul&goto begin
- :lp
- set /a n+=1
- if "%str:~,1%" equ "0" if "%str:~1%" neq "" set n=0&goto wrong
- goto :eof
- :wrong
- cls&echo.&echo.&echo 输入的数值不是合法的十进制数值,或数值不为三个。&ping /n 2 127.1>nul&goto begin
复制代码
源码应该是这个
好像是替换的意思
作者: garyng 时间: 2011-8-19 16:25
对啦~
如果输入有空格,就会删掉~
作者: xss 时间: 2011-8-19 20:50
回复 2# CUer
源代码正如bingxing8000 网友所言,烦请阁下参考一下,并请赐教此代码中的冒号:究竟为何意?拜托了!
作者: CUer 时间: 2011-8-20 00:22
回复 6# xss
set命令的语法,删除字符串中的空格。
作者: xss 时间: 2011-8-20 20:03
回复 7# CUer
原来如此。
谢谢阁下的解惑,使我大有拨云见日之感。同时也感谢其它所有网友的回答!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |