gma*_*man 6 windows command-line environment-variables
在 Bash 中,我可以在命令行上创建临时环境变量。例如
DEBUG=foo somecommand
Run Code Online (Sandbox Code Playgroud)
这设置了环境变量DEBUG,但仅适用于somecommand. 当该行完成时DEBUG不再设置。
我可以在 Windows 命令处理器中执行类似的操作吗?
注意:使用SET不起作用。这设置了当前的命令处理器环境,而不仅仅是要执行的命令。
再举一个例子,这是一个小的 Node.js 程序,它打印单个环境变量的值
// test.js
console.log(`${process.argv[2]}='${process.env[process.argv[2]]}'`);
Run Code Online (Sandbox Code Playgroud)
让我们在 bash 中运行它
$ export FOO=abc
$ node test.js FOO
FOO='abc'
Run Code Online (Sandbox Code Playgroud)
然后让我们使用临时设置运行它
$ FOO=def node test.js FOO
FOO='def'
Run Code Online (Sandbox Code Playgroud)
检查 FOO 是否仍然是 abc
$ echo $FOO
abc
Run Code Online (Sandbox Code Playgroud)
如何在 Windows 命令提示符下完成同样的事情?
一种方法似乎是重新启动命令处理器,如下所示
cmd /S /C "set "FOO=def" & node test.js FOO"
Run Code Online (Sandbox Code Playgroud)
还有其他方法还是就是这样?
只需使用set命令:
C:\>set foo=bar
C:\>echo %foo%
bar
C:\>exit
Run Code Online (Sandbox Code Playgroud)
再次打开cmd
C:\>echo %foo%
%foo%
C:\>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14771 次 |
| 最近记录: |