BATファイルで変数の簡単な設定を行っています。変数を設定していません。奇妙な構造はありません。同じ変数名を使用した単純な変数置換です。BAT ファイルを単純な概念実証バージョンに縮小しました。
set TESTVAR = "No Value"
ECHO var = %TESTVAR%
set TESTVAR = ""
ECHO var = %TESTVAR%
set TESTVAR = "New value"
ECHO var = %TESTVAR%
そして、出力は、どの SET コマンドも機能していないように見えることを示しています。ここで何が欠けているのですか。私は何年も BAT ファイルを書いてきましたが、これまで見たことがありません。このテストを実行した結果の出力は次のとおりです。
C:\Users\rs02130\Desktop>test
C:\Users\rs02130\Desktop>set TESTVAR = "No Value"
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>set TESTVAR = ""
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>set TESTVAR = "New value"
C:\Users\rs02130\Desktop>ECHO var =
var =
C:\Users\rs02130\Desktop>
1 番目と 3 番目の ECHO コマンドで、「No Value」と「New value」という値が表示されるはずです。一体何が起こっているのですか?