batch-file - “@echo off”和“@echo%off”之间的区别?

标签 batch-file

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

@echo %off


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

@echo off


'%'前缀的作用是什么?

最佳答案

我从没看过它在cmd控制台中不起作用-仅在.bat脚本中起作用。但是我有一个猜测。

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

考虑到这一点,我猜测作者打算使用此hack来避免将脚本复制粘贴到cmd控制台窗口而不是按预期的.bat脚本的用户遇到的问题。添加%off后,该命令在控制台中已被中止,但从.bat脚本运行时仍可达到其预期的效果。如果没有%,则在完成所有说明后,控制台似乎会挂起。

hung console

关于batch-file - “@echo off”和“@echo%off”之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38307449/

相关文章:

batch-file - 同时运行多个命令

batch-file - 如何为命令答案创建批处理变量=?

batch-file - 批处理手动运行,但不在计划任务中

windows - 批处理文件字符串修改

windows - 批处理脚本 if else 命令

windows - 命令在命令行中运行,但不在 BAT 文件中运行

Windows 批处理 IF !小时! EQU "09"未返回 TRUE

maven - Bat 脚本意外退出

windows - 哪些命令不能与 cmd 命令一起出现在一行/Windows 运行框中?

ant - 使用 ANT 测试最后一行日志文件