どのようにできるのか:
echo [-help | -h]: displays help
私がそれをする瞬間に私は得る:
コマンドの構文が正しくありません。
これは機能しますが
echo "[-help | -h]: displays help"
引用符も印刷されますが、私はそれを望んでいません。
どのようにできるのか:
echo [-help | -h]: displays help
私がそれをする瞬間に私は得る:
コマンドの構文が正しくありません。
これは機能しますが
echo "[-help | -h]: displays help"
引用符も印刷されますが、私はそれを望んでいません。
これを使って
echo [-help ^| -h]: displays help
は^
パイプを脱出します。
複数の方法があります。
キャレットによるエスケープ キャレット
を使用して任意の文字 (パーセントを除く) をエスケープできます
エコー [-help ^¦ -?]
遅延展開の使用 遅延展開
の内容はもはや解析されないため、すべての文字を含めることができます。
setlocal EnableDelayedExpansion set "helpStr=[ -help | -?]" echo !helpStr!
消える引用符
引用符も特殊文字をエスケープできますが、エコーもされます。
消える引用符は通常の引用符と同じように機能しますが、エコーする前に何も置き換えられません。
3.1 遅延展開では、引用符が必要な場所に !"=! を追加します。この式は後で何も置き換えられません。
setlocal EnableDelayedExpansion
echo !"=![ -help | -?]
3.2 遅延拡張なしで FOR ループを使用できます
FOR %%^" in ("") do (
echo %%~"[ -help | -?]`
)
DOS のエスケープ文字は (通常) ^
だから試してください:
echo [-help ^| -h]: displays help
それは少し奇妙ですが、多くの例外があります。こちらをご覧ください: http://www.robvanderwoude.com/escapechars.php
またはの[-help | -h]
いずれ-help
かを意味します-h
。-h
唯一の引数としてコマンドを再実行してみてください。