Я ищу возможность запустить приложение (например, компиляторы) с конкретными переменными среды. Я хочу такую же функциональность, как env в Linux. env var=value application.exe

Я нашел параметр переменной среды для одной команды в Windows cmd.exe, но не удовлетворен решением. (потому что в письме много символов, в которых вы можете ошибиться)

Что-то изменилось с 2010 года? Я был бы счастлив даже не со встроенными решениями.

1 ответ1

0

env var=value application.exe

возможно. Напишите следующий пакетный скрипт, назовите его env.bat и поместите его где-нибудь в каталог из вашей переменной PATH. Пожалуйста, прочитайте аргументы командной строки (параметры) и setlocal статьи для дальнейшего объяснения.

скрипт env.bat :

@setlocal
@set "%~1=%~2"
@%3

Вышеприведенный сценарий применяется к данной простой команде, но требует некоторой доработки для принятия параметров строки, таких как env var=value application.exe action input output и т.д.


Перед редактированием:

set var=value&application.exe&set var=

т.е. установите переменную, затем запустите консольное приложение, а затем удалите переменную.

Другой подход:

cmd /C "set var=value&application.exe"

т.е. запустить новый экземпляр интерпретатора команд Windows и в нем установить переменную, а затем запустить консольное приложение; значение переключателя /C см. cmd /?:

/C      Carries out the command specified by string and then terminates

Здесь & ampersand должен быть экранирован в указанной команде. Вы можете выбрать любой:

cmd /C "set var=value&application.exe"

или же

cmd /C set var=value^&application.exe

Также обратите внимание на правильное расстояние:

                       ↓ allowed space                    
cmd /C "set var=value & application.exe"
                     ↑  this is harmful space as "%var%" would be "value " then
                                                    note trailing space ↑

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .