标题: 本人发现转义符^一个有趣现象
[打印本页]
作者: stornager
时间: 2007-5-13 22:50
标题: 本人发现转义符^一个有趣现象
@echo off
color 1f
echo ^|^^^^^^^^^^^^^^^^^^^^|^>nul^
echo ^######################>nul^
echo ^!!!I love bach!!!^
echo ^######################>nul^
echo ^|^^^^^^^^^^^^^^^^^^^^^>nul^
pause>nul
请各位兄测试一下这个代码,你将回看到什么.....
作者: lxmxn
时间: 2007-5-14 00:14
测试发现生成一个空文本文件 nulecho ,提示
Quote: |
'!!!I' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
过程试图写入的管道不存在。 |
|
作者: stornager
时间: 2007-5-14 14:13
请问版主为什么会生成一个空文本文件 nulecho ??我觉得“^”好象能使”echo“回显。
[
Last edited by stornager on 2007-5-14 at 02:17 PM ]
作者: lxmxn
时间: 2007-5-14 14:29
Quote: |
Originally posted by stornager at 2007-5-14 14:13:
请问版主为什么会生成一个空文本文件 nulecho ??我觉得“^”好象能使”echo“回显。
[ Last edited by stornager on 2007-5-14 at 02:17 PM ] |
|
我自己也不清楚为什么会生成这个空文件;
关于特殊符号和管道符一起产生的“奇怪”的现象,一直没有弄清楚,可能 willsort 有过这方面的分析,你可以搜索一下。
作者: flyinspace
时间: 2007-5-14 14:43
Quote: |
Originally posted by stornager at 2007-5-14 02:13 PM:
请问版主为什么会生成一个空文本文件 nulecho ??我觉得“^”好象能使”echo“回显。
[ Last edited by stornager on 2007-5-14 at 02:17 PM ] |
|
很简单的原因啊?
请问 nul 后面的是什么?是回车??
那么使用了转义字符后就让回车无效了。。
即:nul变成了 nulecho了。。
另外,若要理解转义字符。。请测试;:
^^
^^^
^^^|
的作用。
作者: stornager
时间: 2007-5-14 17:24
请5楼分析下面代码运行的结果为何没有I love batch!
@echo off
echo ^|^
echo I love batch!^
echo ^|^
echo %time% >a.txt^
ping -n 2 127.1>nul&pause>nul
作者: lxmxn
时间: 2007-5-14 17:47
To stornager:
根据5楼 flyinspace 兄的解释,对于行尾的 ^ 符号,它将把一行末尾的回车符转义,也就是让回车符失去原本已有的作用,换句话说,就是让回车符失去换行的作用,这样,每行末尾的 ^ 符号将在echo命令的作用下,将几行原本在不同行的文本“连接”成一行。但是由于你 ping 命令后面的>nul,导致echo命令本应该输出到原来文本的字符串重定向到空设备了,这样,你就无法看见你认为会出现的结果了。
修改一下代码之后,就可以显示出来了。
@echo off
echo ^|^
echo I love batch!^
echo ^|^
echo %time% >a.txt^
ping -n 2 127.1&start a.txtping&pause