色彩を教える人になるための講座「色彩講師養成講座」の魅力とは>>

例えば次のようなバッチファイルを実行したときに
abc<12345>xyz
と表示されるようにするには、どうすればよいのでしょうか。

------------------------begin
set x=abc^<12345^>xyz
echo %x%
pause
------------------------end
echo "%x%"
とすれば表示されますが、「"」自体も表示されてしまいます。

よろしくお願いします。

質問者からの補足コメント

  • 質問の仕方が悪かったです。

    変数xに「abc<12345>xyz」という文字列が入っているという意味で1行目を書きました。
    この文字列が入っていることが前提で、変数xを表示させたときに、正しく、文字列とおりに表示したいのです。
    例えば、上記スクリプトを下記のようにすればよいのかな。。。。

    ------------------------begin
    set /p x=
    echo %X%
    pause
    ------------------------end
    として、画面から
    acb<12345>xyz
    を入力したときに、「acb<12345>xyz」と表示されるようにしたいのです。

    よろしくお願いします。

      補足日時:2016/08/29 20:19
gooドクター

A 回答 (2件)

補足確認しました。


その条件だと別コマンドを用意するしか解はないと思います。

まず%X%はechoに渡される前に展開されますので
echo %X%
だとechoコマンドをどう改造しても無理ですね。
simpleecho "%X%"
のようにして独自に""を剥いて出力するsimpleecho.exeを作っておくくらいしか解がないように思います。
    • good
    • 0
この回答へのお礼

何度も申し訳ありません。ありがとうございます。

やっぱり標準機能だけでは無理ですか。。。。

コンソールアプリを作るという発想は無かったです。でも、これで解決しそうです。
ちょっとマイナーですが、delphiを持っているので、挑戦したいと思います。

お礼日時:2016/08/30 21:23

set x=abc^^^<12345^^^>xyz


echo %x%

要するにxに代入するときとechoで表示するときの2回エスケープが展開されるので、二重にエスケープすれば宜しい。
    • good
    • 1
この回答へのお礼

ありがとうございます。

質問の仕方が悪かったです。
変数Xの中には、「abc<12345>xyz」という文字列が入っていて(例えばset /p x= でこの文字列を入力するなど)、その変数Xを表示させたときに、入っている文字列のとおり「abc<12345>xyz」と表示したいのです。

お礼日時:2016/08/29 20:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング