В Bash я могу создавать переменные окружения TEMPORARY в командной строке. Для примера
DEBUG=foo somecommand
Это устанавливает переменную environmentmnet DEBUG
но только для somecommand
. Когда линия закончена, DEBUG
больше не устанавливается.
Могу ли я сделать нечто подобное в командном процессоре Windows?
Примечание. Использование SET
не работает. Это устанавливает текущую среду процессоров команд, а не только для команды, которая должна быть выполнена.
В качестве другого примера приведу небольшую программу node.js, которая печатает значение одной переменной среды
// test.js
console.log(`${process.argv[2]}='${process.env[process.argv[2]]}'`);
Давайте запустим это в Bash
$ export FOO=abc
$ node test.js FOO
FOO='abc'
Тогда давайте запустим его с временной настройкой
$ FOO=def node test.js FOO
FOO='def'
Проверьте, что FOO все еще abc
$ echo $FOO
abc
Как я могу сделать то же самое в командной строке Windows?
Один из способов, похоже, перезапустить командный процессор, как в
cmd /S /C "set "FOO=def" & node test.js FOO"
Есть другой способ или это все?