看代码:
1.- set a=strange
- echo %a:=%
- pause
复制代码 如上代码,一闪就过,思路是如果要替换的字符和用来替换的字符都为空会是什么样的结果,本人无法解释,麻烦论坛的朋友开导一下。
2.- echo %a:xy=%
- ::显示xy=,此处不明白百分号和a到底起了什么作用,为什么会显示xy=,命令行如何解释的?
- pause
复制代码 3.- echo %a:xy=
- ::显示结果同代码2.同样不明白,对比代码4再看看
- pause
复制代码 4.- echo a:xy=%
- ::显示a:xy=,百分号%在这里被丢弃了,而代码3却因为有%和a是整个命令的含义不一样了,why?
- pause
复制代码 5.- echo %a:
- ::显示结果为echo处于关闭状态。百分号%此处似乎跟结果有很大干系,感觉像被当成了变量的一部分,why?
- pause
复制代码 6.- echo %a,
- ::显示结果为a,,与代码5完全不一样,而代码差别一个是冒号一个是逗号,位置都相同,做何解?
- pause
复制代码 7.- echo a:%
- ::这个好理解,末尾的百分号丢弃,直接显示a:,主要为了做参照
复制代码 如上,每个代码有相应注释,也是小弟的疑问。平时虽然大家不会这样去定义某个变量,但是本人觉得只从根本上弄清了事情的来龙去脉才能更少犯错。编程中的bug不是有很多时候都是机缘巧合在处理过程中没有考虑到某些特定字符的组合从而造成解释器将这些组合误解而产生的么?严谨是编程必备的素质。帖子很久了,今天重新全面修改当是顶一下了,有点繁琐,希望达人们从原理上指导一二,不胜感激!
[ 本帖最后由 Lumiere 于 2009-8-10 23:29 编辑 ] |