Подтвердить что ты не робот

Переменная пакетного файла не работает

Я делаю несколько простых настроек переменной в 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>

Я ожидаю, что первая и третья команды ECHO будут отображать значения "Нет значения" и "Новое значение". Что происходит?

4b9b3361

Ответ 1

Задача - это пробелы вокруг знака равенства. Это должно делать то, что вы хотите.

set TESTVAR="No Value"
ECHO var = %TESTVAR%
set TESTVAR=""
ECHO var = %TESTVAR%
set TESTVAR="New value"
ECHO var = %TESTVAR%