わかりづらい書き方だが、要は以下の通り。キャレット「^」は何の特別な意味もない。空白を含む引数はエスケープ文字としての二重引用符「"」で囲うこと。二重引用符「"」自体を引数(データ)に含めたい場合は「\」を前に付けること。二重引用符の前にデータとして「\」を付けたい場合、「\」を2回以上つけるが...この場合、2つの「\\」が1つの「\」に置き換わるように動作する。「\\"」は2つの「\」が1つの「\」に置き換えられ、残りの「"」はエスケープ文字になる。「\\\"」は2つの「\」が1つの「\」に置き換えられ、残りの「\"」がデータとしての「"」になる。最後の「"」はその前の「\」が奇数個ではデータになり、偶数個ではエスケープ文字になる。上記以外の「\」は単なるデータの「\」になる。いうわけで、「"」をデータとして含めたいときはその前にエスケープ文字「\」を置き、その前にさらにデータとしての「\」を起きたい場合は2個ずつセットで置く(合計で奇数個の「\」が続く)ようにすればよい。「"」の前にどうしても「\」を置きたいケースはそれほど多くない気がするので、あまり気にする必要はなさそう。実際にはコマンドプロンプトで特別な意味を持つ記号は他にも、<,>,|,(,),&,%がある。これらのうち、%以外は二重引用符「"」で囲むことでエスケープできたが、%だけは回避できなかった。%PATH%とすれば環境変数PATHの内容が表示されるが、これを環境変数に展開せず、「%PATH%」と表示させる方法が分からない。%%PATH%%としても環境変数PATHの内容の前後に%が付くだけだ。"%%PATH%%"等としても効果はない。そこで、気づくのが冒頭のMSDNの内容。今までキャレット「^」なんて気にしたこと無かったが、これがわざわざ書いてあるのには意味があるはずだ。^%PATH^%としたところ、望み通りの「%PATH%」という表示がされた!おうい、マイクロソフトさん、「^」はエスケープ文字として働いているようですが...?それとも冒頭の表記は、C#コンパイラとの関わりでしか有効ではないのだろうか。その後、「キャレット」でヘルプを検索し直してみると、echoコマンドの項目に<,>,|の文字がエスケープできることが書いてある。今度はechoコマンドのみでの対応なのかが気になったため、テストしてみた。やり方は、「%PATH%.txt」という名前のファイルの内容をtypeコマンドで表示してみるだけのものだ。%PATH%.txtとすると、やはり動作がおかしい。^%PATH^%.txtと書くと、見事ファイルの内容が表示された。「"」自体をデータに含める場合は「\」を前置。「"」の前にデータとして「\」を置きたい場合はエスケープ用の「\」1つに加えて、「\」を2個ずつセットで置く。%をエスケープしたい場合は「^」を使用する。「^」は他にも使えるかも。Perl5.010001。