В 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"

Есть другой способ или это все?

0