此命令在圆括号中起什么作用?
为什么没有封闭的括号?
>> datatest.csv.TEMP echo(!modified!
答案 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
,因为它将显示出来。