gpt4 book ai didi

powershell - 从 .ps1 脚本设置环境变量

转载 作者:行者123 更新时间:2023-12-02 23:40:56 25 4
gpt4 key购买 nike

我目前正在处理一个 Node.js 项目,并希望自动设置环境变量。我写了一个脚本( set_env.ps1 ),看起来像这样:

Write-Host "Setting environment variables...";
$env:CLIENT_KEY="xxxxxxxxxxxxxxxx";
$env:CLIENT_SECRET="xxxxxxxxxxxxx";
[etc]

我从一些 npm 脚本中调用它:
"scripts": {
"install:windows": "powershell ./set_env.ps1",
"start": "npm run install:windows && node index",
"monitor": "npm run install:windows && nodemon index"
},

虽然它似乎不起作用。我可以在命令行中手动输入相同的命令,一次一个,并设置环境变量。但是,只需运行脚本,“设置环境变量...”就会打印到 powershell 提示符,但不会设置任何变量。

Internet 上的所有内容似乎都希望从提示符执行此操作,一次一个 env var。这对于一长串环境变量来说非常繁琐,而且Webstorm中嵌入的Powershell提示有不接受粘贴字符串的习惯。

最佳答案

回答这个问题是因为很可能其他人会遇到这个问题。

正如两条评论所示,Powershell 脚本进程的环境在终止时丢失。因此,脚本内设置的环境变量不会传递到 Powershell 提示符。

我们可以调用 npm run monitor,而不是链接 npm 脚本来调用我们需要的所有内容。或 npm run start来自 powershell 脚本,如下所示:

Write-Host "Setting environment variables...";
$env:CLIENT_KEY="xxxxxxxxxxxxxxxxx";
$env:CLIENT_SECRET="xxxxxxxxxxxxxxxxxxxxxxx";
[etc]
[...]
Write-Host "Initializing process..."

npm run monitor

然后,我们有我们的 npm 脚本,如下所示:
"scripts": {
"start:windows": "powershell ./start.ps1",
"start": "node index",
"monitor": "nodemon index"
}

要启动,请运行 npm run start:windows从命令提示符。

关于powershell - 从 .ps1 脚本设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42821345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com