2013-10-18 16 views
22

BATファイルで変数の簡単な設定をしています。変数を設定していません。奇妙なコンストラクトはありません。同じ変数名を使用する簡単な変数置換です。私は、BATファイルを単純な概念実証バージョンに縮小しました:そして、出力は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> 

Iは、第1および第3のECHOは値「値なし」と「新しい価値」を表示するコマンド期待しています。一体何が起こっているの?

+15

Testvarと等号の間にスペースを入れる必要はありません。 – jeb

+0

これについてはわかりませんが、おそらく 'EnableDelayedExpansion'にする必要があります – mavrosxristoforos

+9

等号の周りのスペース ...私はそれが何か本当にばかだと分かっていました。ありがとう。 –

答えて

37

問題は等号の周りのスペースです。これはあなたが望むことをするはずです。

set TESTVAR="No Value" 
ECHO var = %TESTVAR% 
set TESTVAR="" 
ECHO var = %TESTVAR% 
set TESTVAR="New value" 
ECHO var = %TESTVAR% 
関連する問題