Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата chek:
а какая ошибка в моем первоначальном? »
Раскрытие переменных окружения выполняется для всей команды целиком. В Вашем случае, все переменные окружения, заключённые в операторные скобки:
Цитата:
Код: Выделить весь код
if %cb%==t (
		set cbFullName="termserver"
	) else (
		set cb0=cb0
		echo %cb0%
		set cbFullName=%cb0%%cb%
		echo %cbFullName% )
будут раскрыты перед началом исполнения всей процитированной команды (начиная с if %cb%…, и данная команда будет исполняться в таком виде:
Код: Выделить весь код
if Содержимое_переменной_окружения_cb==t (
		set cbFullName="termserver"
	) else (
		set cb0=cb0
		echo 
		set cbFullName=Содержимое_переменной_окружения_cb
		echo )
Можете временно закомментировать @echo off и посмотреть.

Что делать — использовать отложенное раскрытие переменных окружения (сообщение коллеги megaloman выше), использовать двойное раскрытие по call (годится не для всех случаев).
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:40, 28-12-2018 | #7