|
greenworld
初级用户
积分 86
发帖 45
注册 2007-7-26
状态 离线
|
『第
16 楼』:
好贴,收藏来学习了,非常多谢LZ
|
|
2007-10-18 10:45 |
|
|
techon
新手上路
积分 18
发帖 10
注册 2007-10-10
状态 离线
|
|
2007-11-9 16:40 |
|
|
hizebra
新手上路
积分 19
发帖 5
注册 2007-10-10
状态 离线
|
『第
18 楼』:
启用变量延迟后,感叹号如何显示?
诚如楼主所言,启用变量延迟后,双感叹号!!间的内容将被替换,若无定义,则echo为空;
试用了 echo "!!!!" 的语句后,显示双引号"";
再试 echo "^!^!!!" 可以显示 "!!";
再试 echo "!^!^!!" 显示为"!";
试 echo "^!!!^!" 显示为"!";
试 echo "!!^!^!" 显示为"!";
由此得到以下规律:
1、脱字符^在字符串首出现时必可显示一个感叹号,后面继续紧跟^!这样的序列组,有多少组就会得到多少个感叹号,直到连续感叹号出现为止;
2、在第一组连续感叹号和最后一个感叹号间的字符串中,只有出现连续^!两组以上的序列,才会得到一个感叹号,有N组就得到N-1个感叹号;即两个脱字符间的感叹号才可被转义。
3、如果把以上echo语句中的双引号取掉,无论任何情况都得不到输出结果。
尽管得到这样的结论,对其内部处理机制仍不是很清楚,请高手答疑。
另外,即使通过这种方法可以显示!,那么怎么取掉外部的双引号呢?请不要简单告诉我输出文件,再用for解析变换,这样得不偿失。我已经尝试用set定义这些echo内容了,然而显示变量为空,不明就里。
|
|
2007-12-17 13:03 |
|
|
haiou327
高级用户
DOS时空
积分 713
发帖 348
注册 2007-2-10
状态 离线
|
|
2008-1-4 15:54 |
|
|
429499381
中级用户
积分 452
发帖 202
注册 2006-12-21
状态 离线
|
『第
20 楼』:
18楼你在说什么 ??
C:\>echo "!!!"
"!!!"
C:\>echo "^!^!!!"
"^!^!!!"
C:\>echo "^!!!^!"
"^!!!^!"
C:\>echo "!!^!^!"
"!!^!^!"
C:\>echo !!
!!
C:\>echo ""
""
C:\>
|
|
2008-1-26 07:05 |
|
|
qianmo717
初级用户
积分 68
发帖 32
注册 2007-12-9
状态 离线
|
『第
21 楼』:
楼上的朋友,他讨论的是(启用变量延迟后,感叹号如何显示?)
|
|
2008-1-26 09:49 |
|
|
laihaibin08
新手上路
积分 13
发帖 15
注册 2008-10-19
状态 离线
|
|
2008-10-19 17:23 |
|
|
slw218856
初级用户
积分 133
发帖 75
注册 2008-8-3
状态 离线
|
『第
23 楼』:
在基础上有深入的理解,新手由此入境。
收藏了, 学习,继续学习。
|
|
2008-10-22 13:04 |
|
|
cjiabing
新手上路
积分 19
发帖 18
注册 2009-1-19
状态 离线
|
|
2009-6-9 06:04 |
|
|
weasel
初级用户
积分 118
发帖 66
注册 2006-8-18
状态 离线
|
|
2009-6-9 12:40 |
|
|
sl543001
中级用户
积分 499
发帖 225
注册 2008-12-30
状态 离线
|
|
2009-10-1 22:05 |
|
|
jiafei2427
新手上路
积分 8
发帖 8
注册 2007-10-31
状态 离线
|
『第
27 楼』:
不错 学习到了 我的问题从你那里解决了 谢谢
|
|
2009-12-16 14:56 |
|
|
hqz123
新手上路
积分 1
发帖 1
注册 2009-2-3
状态 离线
|
|
2009-12-17 14:05 |
|
|
7testing
新手上路
积分 16
发帖 17
注册 2008-4-8
状态 离线
|
『第
29 楼』:
感觉那些扩展部分还是蛮高深的,还需要继续深入的研究。
|
|
2010-6-4 13:52 |
|
|
wxs81514
初级用户
积分 118
发帖 52
注册 2008-5-7
状态 离线
|
『第
30 楼』:
高深啊,我看都有点没耐心了,呵呵
|
|
2010-11-11 15:21 |
|