批处理文件:echo'|'字符

时间:2012-06-13 14:19:33

标签: batch-file

我该怎么做:

echo [-help | -h]: displays help

在我这样做的那一刻,我得到了:

  

该命令的语法不正确。

这可行,但

echo "[-help | -h]: displays help"

它还会打印引号,我不希望这样。

4 个答案:

答案 0 :(得分:3)

使用此

echo [-help ^| -h]: displays help

^转义管道。

答案 1 :(得分:1)

有多种方式:

  1. 用插入符号逃跑
    您可以使用插入符号

    来转义任何字符(但不是百分比)

    回声[-help ^ | - ?]

  2. 使用延迟扩展
    由于不再解析延迟扩展的内容,它可以包含所有字符。

    setlocal EnableDelayedExpansion 设置“helpStr = [-help | - ?]” echo!helpStr!

  3. 消失的引语
    行情也可以逃避特殊字符,但它们也会得到回应 消失的引号与普通引号类似,但在回显之前它们将被替换为空。

    3.1对于延迟扩展,你添加!“=!你需要引用的任何地方,这个表达式将被替换为什么,稍后

    setlocal EnableDelayedExpansion
    echo !"=![ -help | -?]

    3.2如果没有延迟扩展,您可以使用FOR-loop

  4. FOR %%^" in ("") do (
        echo %%~"[ -help | -?]`
     )

答案 2 :(得分:1)

DOS中的转义字符是(通常)^

所以试试:

echo [-help ^| -h]: displays help

虽然有很多例外,但有点奇怪。见这里:http://www.robvanderwoude.com/escapechars.php

答案 3 :(得分:0)

[-help | -h]表示-help-h。尝试再次运行该命令,-h作为唯一参数。