转义以正斜杠和问号开头的批处理文件回显

时间:2011-06-29 01:08:31

标签: batch-file escaping cmd dos echo

有点棘手。如何在批处理文件中正确转义以下内容?

echo    /?   display this help text

这个特殊的字符组合被视为“ECHO /?”命令:

C:\Batch>ECHO       /?    display this help text
Displays messages, or turns command-echoing on or off.

  ECHO [ON | OFF]
  ECHO [message]

Type ECHO without parameters to display the current echo setting.

它不响应插入符号(^)逃逸,即。我试过^ /? / ^?和^ / ^?。

注意:作为一种解决方法,我发现在其间插入其他字符足以绕过ECHO命令行处理器,例如:

echo ...   /?   display this help text

尽管如此,这还不理想,我想知道是否有办法实现所需的输出,即使用/?在回显消息的开头。

2 个答案:

答案 0 :(得分:6)

对于转义回声参数,存在许多变体,例如echo.echo:echo=
但只有echo(似乎对任何附加文本都是安全的。

如果文件存在,例如echoecho[echo]echo+

,则会失败
echo.
echo[
echo]
echo+

如果当前目录中的文件名为my.bat

,则会失败
echo\..\my.bat
echo:\..\my.bat
echo.\..\my.bat

这些文件无法独立于文件

echo/?
echo,/?
echo;/?

只有echo(似乎始终对任何内容安全

答案 1 :(得分:5)

对于转义echo参数,您可以使用备用语法echo.

echo./?