アプリ版:「スタンプのみでお礼する」機能のリリースについて

DOSバッチで変数の値を変数名に設定したいのですが、可能でしょうか?
例として、以下のようにVARという変数に対して、ある文字列を設定し、その文字列の名前の変数の値を別の変数に代入したいのです。
set VAR="TMP"
if /i "%VAR%"=="TMP" (SET TEST=%%VAR%%)
echo %TEST%
ここで求めている挙動は、SET TEST=%%VAR%%の命令によって
SET TEST=%TMP% → SET TEST=C:\Windows\Temp
のように展開されればいいのですが、実際はSET TEST=%VAR%となってしまいます。
なにか良い方法がないでしょうか?

A 回答 (2件)

こんな感じ?


setlocal enabledelayedexpansion
set foo=bar
set bar=baz
echo !%foo%!
    • good
    • 2
この回答へのお礼

助かりました。まさにこれです。ありがとうございました。

お礼日時:2010/06/17 14:53

とりあえず、これで変数 VAR の内容によって、


変数 TEST の中身が
 ・%1がTMPの時はC:\~\Tempに
 ・%1がTMP以外の時は%1の内容に
になると思います。

set VAR=%1
set TEST=%VAR%
if /i %VAR%==TMP (set TEST=%TMP%)
set TEST
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございます。

お礼日時:2010/06/17 14:59

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

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