如何设置像bash一样的临时环境变量windows命令提示符?


0

在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%不起作用:(
DavidPostill

Answers:


-1

只需使用set命令:

C:\>set foo=bar

C:\>echo %foo%
bar

C:\>exit

再次打开cmd

C:\>echo %foo%
%foo%

C:\>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.