CMDで変数名に変数を入れた場合の表示方法


例えば以下のようなモノを作成します。

[code]

    @ECHO OFF
    SET A=HOGE1
    SET /A %A%EGOH+=1
    ECHO %HOGE1EGOH%
    PAUSE
    
[/code]

ECHO には 1 と正しく表示されます。  
しかしこれは『%A%』が『HOGE1』であるが為に動作しています。  
そこで

[code]

    ECHO %A%EGOH
    PAUSE
    
[/code]

例えばこの様な書き方で 1 を表示させたいのですが、このままでは動作しません。  
どのように記述すれば良いのでしょうか？




[`SETLOCAL ENABLEDELAYEDEXPANSION`](https://docs.microsoft.com/en-us/windows-
server/administration/windows-
commands/setlocal)を使うと遅延評価が使えます。遅延評価は`!変数名!`と記述します。つまり`!%A%EGOH!`と記述すると`%A%`が展開されて`!HOGE1EGOH!`となり、遅延評価により`1`が表示されます。

[code]

    @ECHO OFF
    SETLOCAL ENABLEDELAYEDEXPANSION
    SET A=HOGE1
    SET /A %A%EGOH+=1
    ECHO !%A%EGOH!
    PAUSE
    
[/code]




[`SETLOCAL ENABLEDELAYEDEXPANSION`](https://docs.microsoft.com/en-us/windows-
server/administration/windows-
commands/setlocal)を使うと遅延評価が使えます。遅延評価は`!変数名!`と記述します。つまり`!%A%EGOH!`と記述すると`%A%`が展開されて`!HOGE1EGOH!`となり、遅延評価により`1`が表示されます。

[code]

    @ECHO OFF
    SETLOCAL ENABLEDELAYEDEXPANSION
    SET A=HOGE1
    SET /A %A%EGOH+=1
    ECHO !%A%EGOH!
    PAUSE
    
[/code]

