Batch file 区别于@“回音关闭”;及@回显%off“;?

Batch file 区别于@“回音关闭”;及@回显%off“;?,batch-file,Batch File,在批处理脚本的开头,我看到了以下命令: @echo %off 令我惊讶的是,它具有相同的效果: @echo off “%”前缀的作用是什么?我以前从未见过它。它在cmd控制台中不起作用——只在.bat脚本中起作用。但我有一个猜测 在cmd控制台窗口中,如果@echo off,则会导致命令提示被隐藏,就像在.bat脚本中一样。要再次显示提示,您必须在上回声。不同之处在于,在.bat脚本中,百分号需要加倍以表示文字%字符串字符,而在cmd控制台中则不需要。结果是,cmd控制台中的@echo%of

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

@echo %off
令我惊讶的是,它具有相同的效果:

@echo off

“%”前缀的作用是什么?

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

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

考虑到这一点,我猜作者的本意是为了避免将脚本复制粘贴到cmd控制台窗口而不是.bat脚本中的用户遇到问题。添加了
%
后,该命令在控制台中被阉割,但在从.bat脚本运行时仍能达到预期效果。如果没有
%
,在所有指令完成后,控制台将显示为挂起


我从未见过这种情况。事实上,
%
是由解析器剥离的,因此它没有任何效果(至少在纯批处理中-但是有一些批处理混合脚本,它可能会有所不同)。你能给我们一个消息来源吗?(你在哪里看到的?)我以前从未见过。它在cmd控制台中不起作用——只在.bat脚本中起作用。我猜是这样的,如果有人将脚本复制粘贴到控制台窗口而不是.bat文件中,粘贴不会导致提示被隐藏?在批处理文件中,单个
%
符号被简单删除,因此效果与不存在时相同…@rojo,这至少是有意义的…答案是:百分号<代码>;-)