Командная строка Windows: без оценки переменной среды - PullRequest
5 голосов
/ 27 ноября 2008

Я бы хотел предоставить необработанный текст, ссылающийся на переменную окружения, в команду вместо оценки переменной окружения.

Мне это нужно для настройки BizTalk из командной строки, например:

BTSTask.exe AddResource -ApplicationName: App1 -Тип: System.BizTalk: BizTalkAssembly -Перезаписать -Source: .. \ Schemas \ Bin \ развитие \ App1.Schemas.dll -Destination:% BTAD_InstallDir% \ App1.Schemas.dll

Эта команда добавляет ресурс в приложение BizTalk. Я хочу, чтобы местом назначения было% BTAD_InstallDir% \ App1.Schemas.dll, однако в настоящее время он оценивает переменную среды (ничего) и использует \ App1.Schemas.dll.

Можно ли избежать или отключить оценку этой переменной среды при разборе \ выполнении этой команды?

Я попытался экранировать первый и оба процентных символа с морковкой (^), однако это не остановило оценку.

[EDIT] Когда я выполняю это в командной строке, он не заменяет переменную окружения, однако, когда я запускаю ее как скрипт, возникают мысли о том, почему это не так?

Ответы [ 4 ]

4 голосов
/ 27 ноября 2008

Попробуйте echo ^% path ^% в командной строке, которую он печатает ...

путь

вместо того, чтобы расширять переменную окружения, поэтому я думаю, что следующее должно работать для вас, как предложено Mikeage

BTSTask.exe AddResource -ApplicationName: App1 -Тип: System.BizTalk: BizTalkAssembly -Overwrite -Source: .. \ Schemas \ bin \ development \ App1.Schemas.dll -Назначение: ^% BTAD_InstallDir ^% \ App1.Schemas .dll

3 голосов
/ 27 ноября 2008

Вы пробовали:

%%BTAD_InstallDir%%

в вашем сценарии?

Это должно помешать скрипту интерпретировать переменную, и он передаст %BTAD_InstallDir% программе.

2 голосов
/ 27 ноября 2008

Попробуйте ^% вместо%.

1 голос
/ 27 ноября 2008

Пробовал:

C:\PrgCmdLine\Unix\echo.exe "%"JAVA_HOME"%"

Got:

%JAVA_HOME%

[EDIT] Действительно, C:\PrgCmdLine\Unix\echo.exe ^%JAVA_HOME^% тоже работает и проще ...

[EDIT 2] Для записи: я использовал эхо UnxUtils, чтобы поведение простой программы. Встроенное эхо имеет немного другое поведение, по крайней мере для указанных в% знаков.

...