0

我能怎么做:

echo [-help | -h]: displays help

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

该命令的语法不正确。

这有效,但

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

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

4

4 回答 4

4

用这个

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

^逃出管道。

于 2012-06-13T14:26:43.937 回答
1

有多种方式:

  1. 使用脱字符转义
    您可以使用脱字符转义任何字符(但不是百分比)

    回声 [-help ^¦ -?]

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

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

  3. 消失的引号
    引号也可以转义特殊字符,但它们也会被回显。
    消失的引号与普通引号一样工作,但在回显之前它们将被替换为空。

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

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

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

FOR %%^" in ("") do (
    echo %%~"[ -help | -?]`
 )
于 2012-06-13T14:28:21.680 回答
1

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

所以试试:

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

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

于 2012-06-13T14:28:33.453 回答
0

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

于 2012-06-13T14:23:08.670 回答