Какой синтаксис будет проверять, определено ли имя переменной, содержащее пробелы?

Пользовательские имена переменных среды Windows могут содержать любые символы, кроме = .

Специальные символы могут быть включены путем их экранирования. Более простой способ - просто заключить все выражение SET в кавычки. Например:

set "A weird & "complex" variable=My value"
set A weird ^& "complex" variable=My value

Оба приведенных выше выражения дают одинаковый результат. Имя переменной - Странная & "сложная" переменная , а значение - Мое значение

Конструкция IF DEFINED используется для проверки того, определена ли переменная. Цитаты не подходят для этого теста, специальные символы в имени (включая кавычки) должны быть экранированы.

set "A&B=value"
if defined A^&B echo This works
if defined "A&B" echo This does not work

Вышеупомянутый экранированный тест работает нормально. Цитируемый тест не работает

Но как я могу проверить, существует ли переменная, содержащая пробелы?

set "A B=value"
if defined A^ B echo this does not work!

Кажется, что приведенный выше тест должен работать, но это не так!

Я ищу ответ, который НЕ требует расширения переменной с помощью% A B% или! A B!

6
задан dbenham 24 November 2011 в 09:14
поделиться