[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] 批处理中在&&、||符号之后@功能为什么会被加强?

我也不知道该怎么问了,好像是预处理的原因,又好像是&&、||的原因,跟进一步可能是@的原因,毕竟一直以来@都没找到官方的解释,只不过是人人传诵——关闭回显。

原帖地址:http://bbs.bathome.net/redirect. ... 9&fromuid=30829

&& ,||是根据前面的语句成功与否选择执行下一条语句。
  1. fc /b 1.txt ah.txt && @echo hello || @echo life
  2. pause
复制代码
这两个文件不同,也没有显示life,为什么?(第一问已解决)

竟然是@的问题,这又为什么,我关闭的只是echo 本身的回显,为什么life没有输出?
  1. fc /b 1.txt ah.txt && echo hello || echo life
  2. pause
复制代码

回复 2# raymai97


    你根本就没明白我的意思,也没有完全弄懂echo的语法,
  1. 显示信息,或将命令回显打开或关上。
  2.   ECHO [ON | OFF]
  3.   ECHO [message]
  4. 要显示当前回显设置,键入不带参数的 ECHO。
复制代码
off和on是关键字,相当于:
  ECHO [ON | OFF]

但是no 和hello却不是。
  ECHO [message]

TOP

鉴于大家有可能把no看成是on,我no改为life……

TOP

9楼纠结在问题中,我纠结在看不懂9楼的问题中,关键词“预处理”我一直把它理解为批处理的“编译过程”,“句柄”理解为各种返回值得存储空间。
  1. fc /b 1.txt ah.txt && @echo hello || @echo life
  2. pause
复制代码
按照6楼给出的“@具有分组性”,上面的代码就是语法错误,类似这样:
fc /b 1.txt ah.txt && (echo hello || (echo life))
echo life永远不会被执行。但正确会执行echo hello。

经验证,果然如此:
1.txt 和3.txt内容一样。
  1. C:\Users\helloworld\Desktop>fc /b 1.txt 3.txt && @echo hello || @echo life
  2. 正在比较文件 1.txt 和 3.TXT
  3. FC: 找不到差异
  4. hello
复制代码
反证:@隐含作用是将@后的内容分组()

连@隐含作用都知道,果然犀利!——我对你的敬仰犹如滔滔江水……,你懂得~

TOP

返回列表