CMD は、SET を使用して保存した変数を認識していないようです。このバッチ ファイルを実行すると、次のようになります。
@ECHO off
SET /P name = What is your name?
ECHO %name%
PAUSE
ECHO on
次の出力が得られます。
What is your name? steven
ECHO is off.
Press any key to continue . . .
コマンドプロンプトから2行目を実行してから3行目を実行すると、次のように出力されます。
%name%
何かが正しく構成されていませんか? 2 行目で 3 行目で認識されるセッション変数を作成する必要があると考えるのは正しいですか?
検索したのですが、IFブロック内の変数展開に関する回答しか見つかりませんでした。これは、IF/FOR/etc ブロックの外側で発生しています。
ちなみにWindows7です。Windows のバージョンごとに cmd がどの程度変化するかはわかりません。