揮発性のメモ2

http://d.hatena.ne.jp/iww/

DOSの変数の代入

    FOR /F "tokens=1" %%i IN (hoge.txt) DO (
        ECHO NAME=%%i
        SET NAME=%%i
        ECHO NAME=%NAME%
    )
NAME=aaa
NAME=

変数に代入すると変数の中身が消える。なんだろうこれ。

    FOR /F "tokens=1" %%i IN (hoge.txt) DO (
        ECHO NAME=%%i
        ECHO %%i>tempfile
        SET /P NAME=<tempfile
        ECHO NAME=%NAME%
    )

一旦外部ファイルに出してもダメ。しかし外部ファイルにはちゃんと出力されている・・・

    FOR /F "tokens=1" %%i IN (hoge.txt) DO (
        ECHO NAME=%%i
        SET NAME=aaa
        ECHO NAME=%NAME%
    )
NAME=aaa
NAME=

ようするに、FOR文の中ではSETが動作しないっぽい。なるほど。ふざけんな。


IF文とか、FOR文で使う ( ) の中だと、SETが動作しないことがある。 ときどき動作することもあるが、その条件はわからない。ELSE節はアウト?
GOTO文を駆使してなるべく最上位階層で走行させる必要がある・・・?