用于Windows powershell的env命令替代项/cmd

ccrfmcuu  于 2022-11-26  发布在  Windows
关注(0)|答案(2)|浏览(190)

我在Linux中看到了一个很酷的东西,想知道它是否也可以在Windows中使用。为了在自定义环境中运行另一个程序而不修改当前的程序,在Linux中我们使用env命令,如下所示:env USERNAME="Test" PASSWORD="Test" npm run e2e:test。这里基本上它所做的是e2e测试开始运行(它可以是任何技术中的任何类型的过程,而不仅仅是节点j中的e2e测试),但是使用测试用户凭证而不是预定义的实际用户凭证。
如何在Windows中实现这一点?

epggiuax

epggiuax1#

用命令行脚本调用cmd.exe,它将在其上下文中执行。

cmd.exe /c "set USERNAME=Test && set PASSWORD=Test && npm run mytest"

作为完整的e2e测试,请在控制台窗口中尝试以下操作:
1.创建一个小javascript脚本来输出一个环境变量:

C:\temp> echo console.log(process.env.myvar); >test.js

1.确认未在shell中设置环境变量,并且调用脚本也找不到该变量:

C:\temp> set myvar
Environment variable myvar not defined

C:\temp> node test.js
undefined

1.现在,运行脚本,但在子进程中设置环境变量,如上所述。注意,脚本现在看到该值。

C:\temp> cmd.exe /c "set myvar=hello && node test.js"
hello

1.确认父进程仍然没有设置变量。

C:\temp> set myvar
Environment variable myvar not defined

C:\temp> node test.js
undefined
gmxoilav

gmxoilav2#

我通过installing WSL和通过powershell使用它解决了这个和许多其他操作系统相关的问题。

相关问题