Windows コマンドラインのエスケープ文字

Windows コマンドラインのエスケープ文字

簡単に言うと、スクリプトからコマンドを受け取り、それを Windows シェルを使用して実行したいと考えています。

現在、次のような方法を使用しています:

echo start & command & echo finish

コマンド自体にアンパサンドが含まれていない限りは問題なく動作します。例えば

echo begin & if exist c:\temp.txt echo 1 & echo endファイルが存在しない場合は、「end」の書き込みに失敗します。

これはコマンドを に変更することで解決できますecho begin & (if exist c:\temp.txt echo 1) & echo endが、括弧記号を含むコマンドでは問題が発生します。たとえば、

echo begin & (echo %PATH%) & echo endパスに Program Files (x86) があるため、「\Hewlett-Packard\HP は現時点では予期されていませんでした。」と表示されます。

コマンドの結果から特殊文字をエスケープする方法はありますか?

前もって感謝します

答え1

問題は PATH 内のスペースなので、引用符を使用してください。

  echo begin & (echo "%PATH%") & echo end

関連情報