" @echo off"之间的区别和" @echo%off"?

时间:2016-07-11 12:51:52

标签: batch-file

在批处理脚本的开头,我看到了命令:

@echo %off

令我惊讶的是它具有相同的效果:

@echo off

'%'有什么影响?前缀?

1 个答案:

答案 0 :(得分:34)

我以前从未见过它。它在cmd控制台中不起作用 - 仅在.bat脚本中。但我有一个猜测。

在cmd控制台窗口中,如果您@echo off,则会导致命令提示被隐藏,就像在.bat脚本中一样。要再次显示提示,您必须echo on。不同之处在于,在.bat脚本中,需要将百分号加倍以表示文字%字符串字符,而在cmd控制台中则不需要。结果是cmd控制台中的@echo %off导致字符串%off回显到stdout。

考虑到这一点,我猜测作者希望这个hack能够避免将脚本复制到cmd控制台窗口的用户遇到的问题,而不是用于.bat脚本。添加%后,命令在控制台中被中断,但在从.bat脚本运行时仍能达到预期的效果。如果没有%,控制台似乎会在所有说明完成后挂起。

hung console