Myk*_*kro 7 cmd escaping dos batch-file echo
有点棘手.如何在批处理文件中正确转义以下内容?
echo /? display this help text
Run Code Online (Sandbox Code Playgroud)
这种特殊的字符组合被视为"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.
Run Code Online (Sandbox Code Playgroud)
它不响应插入符号(^)逃逸,即.我试过^ /?/ ^?和^/^?
注意:作为一种解决方法,我发现在其间插入其他字符足以绕过ECHO命令行处理器,例如:
echo ... /? display this help text
Run Code Online (Sandbox Code Playgroud)
不过,这并不理想,我想知道是否有办法实现所需的输出,即用/?在回显消息的开头.
为了逃避回声参数存在很多变种,比如echo.,echo:,echo=
但只echo(似乎对任何附加文本安全.
这些一个失败,如果文件存在像echo,echo[,echo]或echo+
echo.
echo[
echo]
echo+Run Code Online (Sandbox Code Playgroud)
如果当前目录中存在名为my.bat的文件,则这些失败
echo\..\my.bat
echo:\..\my.bat
echo.\..\my.batRun Code Online (Sandbox Code Playgroud)
这些不能独立于文件
echo/?
echo,/?
echo;/?Run Code Online (Sandbox Code Playgroud)
只有echo(对任何内容似乎总是安全的