Командная строка Windows:Нерасчет переменной среды
-
11-07-2019 - |
Вопрос
Я хотел бы предоставить необработанный текст, ссылающийся на переменную окружения, команде вместо оценки переменной окружения.
Мне это нужно для настройки BizTalk из командной строки, например:
BTSTask.exe Адрес источника -Имя приложения: App1 -Тип: System.BizTalk:BizTalkAssembly -Перезапись -Источник:..\Schemas\bin\development\App1.Schemas.dll -Destination:%BTAD_InstallDir%\App1.Schemas.dll
Эта команда добавляет ресурс в приложение BizTalk.Я хочу, чтобы местом назначения была %BTAD_InstallDir%\App1.Schemas.dll, однако в настоящее время она оценивает переменную среды (ни к чему) и использует \App1.Schemas.dll.
Можно ли экранировать или отключить вычисление этой переменной окружения во время синтаксического анализа \ выполнения этой команды?
Я попытался экранировать первый и оба процентных символа с помощью моркови (^), однако это не остановило оценку.
[ПРАВИТЬ] Когда я выполняю это в командной строке, это не заменяет переменную среды, однако это происходит, когда я запускаю ее как скрипт, есть какие-нибудь мысли относительно того, почему это отличается?
Решение
Вы пробовали:
%%BTAD_InstallDir%%
в вашем сценарии?
Это должно помешать сценарию интерпретировать переменную, и он передаст % BTAD_InstallDir%
программе.
Другие советы
Попробуйте echo ^%path^% в командной строке, которую он печатает...
путь
вместо расширения переменной окружения, я думаю, для вас должно сработать следующее, как предложено Mikeage
BTSTask.exe Источник адреса -Имя приложения:App1 -Тип:System.BizTalk:BizTalkAssembly -Перезаписать -Исходный код:..\Schemas\bin\development\App1.Schemas.dll -адресат:^%BTAD_InstallDir^%\App1.Schemas.dll
Попробуйте ^% вместо%.
Пытался:
C:\PrgCmdLine\Unix\echo.exe "%"JAVA_HOME"%"
Получил:
%JAVA_HOME%
[ПРАВИТЬ] Действительно, C:\PrgCmdLine\Unix\echo.exe ^%JAVA_HOME^%
тоже работает, но проще...
[ПРАВКА 2] Для протокола:Я использовал echo от UnxUtils, чтобы иметь поведение обычной программы.Встроенное echo имеет несколько иное поведение, по крайней мере, для знаков % в кавычках.