无忧启动论坛
标题:
关于转移符号^在注释行中神奇问题一则
[打印本页]
作者:
nttwqz
时间:
2018-12-6 22:28
标题:
关于转移符号^在注释行中神奇问题一则
先看一段简单到不能行的代码,乍看上去,应该能正确显示~!@#$%^,但实际上会显示ECHO 处于关闭状态。
@echo off
::显示特殊符号:~!@#$%^
set b="~!@#$%^"
echo %b%
pause
复制代码
Why?
以::开头的行都是注释,除了便于阅读者更容易理解之外,别无它用,不影响代码执行,内容应该也没有什么限制。
将set之后的行复制到cmd窗口能正确执行,到底是哪里出错了呢?
还是注释行!
因为特么的转移符号^在注释行末尾也是起作用的,也就是说注释行不能以^结尾,否则会继续生效进而转移掉末尾的回车,虽然不可见,虽然这是注释行,结果set那一行和注释行变成了一行注释,造成变量b没有被定义,自然也就无法显示变量b的值了。
作者:
vaf
时间:
2018-12-6 22:57
是的 > 符号有时也会产生类似错误。
作者:
chishingchan
时间:
2018-12-6 23:16
^符号是将后面跟着的1个字符无功能化。单冒号后面是跳转标签名称,双冒号等于将标签命名为冒号,没有被跳转的取巧而已。
作者:
窄口牛
时间:
2018-12-9 15:15
@echo off
Setlocal enabledelayedexpansion
set b="~@#$%%^"
echo %b%
pause
叹号搞不定,注释不能有
作者:
窄口牛
时间:
2018-12-9 15:18
@echo off
Setlocal enabledelayedexpansion
::显示符号:~!@#$%一个^^
set b="~@#$%%^"
echo %b%
pause
复制代码
加注释就只能这样了
欢迎光临 无忧启动论坛 (http://wuyou.net./)
Powered by Discuz! X3.3