サーチ…


前書き

すべてのcmd.exeおよびDOSバージョンでは、特定の用途(コマンドのリダイレクトなど)のために一部の文字が予約されています。このトピックでは、問題なく特殊文字を使用する方法について説明します。

キャレットを使用したエスケープ(^)

ほとんどの特殊文字は、キャレット( ^ )を使用してエスケープできます。次の例を見てください。

echo > Hi
echo ^> Hi 

>は出力をファイルにリダイレクトする特殊文字であるため、この最初のコマンドは> Hi出力しません。この場合、ファイル名は「Hi」となります。

しかし、2番目のコマンドでは、キャレット( ^ )は>に「ファイルへの出力先のリダイレクト」コマンドとしての機能を停止するように指示するため、 > Hiは問題なしで出力されます。 >は通常の文字です。


エスケープできる特殊文字のリスト(Rob van der Woudeのページから取得、編集)

キャラクターエスケープ結果備考
^ ^^
そして、 ^&
< ^ <
> ^>
| ^ |
\ ^ \
^^! DelayedExpansionがオンの場合のみ必要

キャレットをエスケープする

キャレットは、他のキャレットをエスケープするまでスタックすることができます。次の例を参考にしてください。

入力出力
^& そして、
^ ^ ^& ^&
^ ^ ^ ^ ^& ^^&

注意:太字のキャレットはエスケープされています。


セキュリティの問題

ここで少し話題になりますが、これは非常に重要です!ファイルの末尾に不要なキャレットエスケープがあると、メモリリークが発生する可能性があります。

any-invalid-command-you-like-here ^

このコマンドはすべてのメモリをリークし、システムを完全に使用不可能にします!詳細はこちらを参照してください。

FINDとFINDSTRの特殊文字

findfindstrにはいくつかの特殊文字があり、注意が必要です。


見つけた

-エスケープ必要がある唯一の1文字があります"引用符をエスケープするには、単にその隣に別の引用符を追加だから。 "となり"" 。ものすごく単純。


FINDSTR

Findstrはたくさんの文字が含まれていますので、非常に注意してください。 \を使うと、特殊文字をエスケープできます。エスケープする特殊文字のリストです

キャラクターエスケープ結果
\ \\
[ \ [
] \]
" \ "
\。
* \ *
\?

FOR / F特殊文字

FOR / F

FOR /F文では、いくつかの文字がエスケープする必要があります。ここではリスト(Rob van der Woudeのページから取って編集)

キャラクターエスケープ結果備考
' ^ ' usebackqが指定されていない限り、 FOR /Fの括弧でのみ必要です。
` ^ ` usebackqが指定されている場合、 FOR /Fの括弧でのみ必要です。
^、
; ^;
= ^ = ┣FOR FOR /Fの括弧で二重引用符で囲んでもエスケープする必要があります
^(
^)

余分な特殊文字

ここに、エスケープする必要がある/必要とするかもしれないが、上で言及していない他の特殊文字のリストがあります。

キャラクターエスケープ結果備考
%%
[LF] ^ [LF] このトリックは、 alt.msdos.batchニュースグループのMark Stangによってalt.msdos.batchれています。

パイプラインを脱出する

パイプ付きの式がある場合、 cmdはパイプの両側に2つのスレッドを開始し、式はパイプの両側で2回解析されるので、キャレットを2倍にする必要があります。

左側に:

echo ^^^&|more

右側に:

break|echo ^^^&


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow