左括号在此命令中起什么作用?
为什么没有右括号?
>> datatest.csv.TEMP echo(!modified!
最佳答案
这是在 DosTips 上讨论的结果大约九年前。
您的代码将重定向 !modified!
的值到 datatest.csv.TEMP 或者如果变量为空,它将在该文件中打印一个空行。根据 echo /?
, 官方显示空行的方式是使用 echo.
.但是,如果 cmd.exe 以某种方式能够找到名为 echo
的没有扩展名的可执行文件。 (例如,与脚本位于同一目录中的文件),则使用该文件而不是常规 echo
命令。echo.
的一些替代方案被考虑,包括echo\
, echo:
, echo/
和 echo(
. echo\
在存在名为 echo
的文件夹的情况下被排除。其中包含一个与正在回显的内容同名的文件。 echo/
在要显示的字符串以 ?
开头的情况下被排除在外。 ,因为在这种情况下显示了帮助。 echo:
在使用字符串替换的极其罕见的情况下被排除在外。
最终,echo(
最终的结果仅仅是因为没有人能找到它不起作用的情况。 (后来,有人猜测 echo=
、 echo,
和 echo;
都可以安全使用,没有奇怪的副作用或边缘情况。但是,如果您尝试显示文字字符串 /?
,则将改为显示 echo
的帮助。))
不包括在内,因为它将被显示。
关于batch-file - 批处理文件中带括号的回显命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53927052/