批处理文件中带有括号的Echo命令

时间:2018-12-26 03:08:19

标签: batch-file echo

此命令在圆括号中起什么作用?

为什么没有封闭的括号?

>> datatest.csv.TEMP echo(!modified!

1 个答案:

答案 0 :(得分:5)

这是大约九年前在DosTips上进行讨论的结果。

您的代码会将!modified!的值重定向到datatest.csv.TEMP,如果变量为空,它将在该文件中打印空白行。根据{{​​1}},显示空白行的官方方法是使用echo /?。但是,如果cmd.exe能够以某种方式找到没有扩展名为echo.的可执行文件(例如,与脚本位于同一目录中的文件),则将使用该文件而不是常规的echo命令。

考虑了echo的一些替代方案,包括echo.echo\echo:echo/。如果存在名为echo(的文件夹,其中包含与被回叫的文件同名的文件,则排除echo\。在要显示的字符串以echo开头的情况下,排除了echo/,因为在这种情况下显示了帮助。 ?在使用字符串替换的极少数情况下被排除。

最终,echo:的出现仅仅是因为没人能找到它不起作用的情况。 (后来,有人猜测echo(echo=echo,都可以安全使用,而不会产生怪异的副作用或边缘情况。但是,如果您尝试显示文字字符串echo;,将显示/?的帮助。)

不包括echo,因为它将显示出来。