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>
最初と3番目のECHOコマンドで「値なし」と「新しい値」の値が表示されることを期待しています。一体何が起こっているのですか?
問題は等号の周りのスペースです。これはあなたが望むことをするはずです。
set TESTVAR="No Value"
ECHO var = %TESTVAR%
set TESTVAR=""
ECHO var = %TESTVAR%
set TESTVAR="New value"
ECHO var = %TESTVAR%