在Bash中,我可以在命令行上创建TEMPORARY环境变量。例如
DEBUG=foo somecommand
这将设置environmnet变量,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"
有另一种方式还是它?
set foo=bar && echo %foo% && set foo= && echo %foo%
不起作用:(