MorFans Dev
折腾 - 开发 - 分享

powershll 像 bash 一样为单个命令设置临时环境变量

powershll 像 bash 一样为单个命令设置临时环境变量

问题场景

在 Linux 的 bash 等 shell 环境中,可以轻松的:

EDITOR=nvim ./Morfans.cn.sh

在指定环境变量 EDITOR为 nvim 的情况下调用 Morfans.cn.sh

但是在 Windows 的 powershell 下竟然不能这样做,那么怎么办呢。。

这样给一个命令临时指定环境变量有个常见的场景:

有一个第三方的脚本,可以通过环境变量来控制其行为(不是通过参数),且不想修改脚本

解决

😉 最简单的方案是这样的:

推荐这样,虽然不能完全模仿 bash 的用法,但是这样最简便,无需另外下载脚本、二进制等

# 先定义环境变量,然后删除
~
❯ $env:FOO = '233'; Write-Host $env:FOO
233

~
❯ rm Env:\FOO

放在一行:

$env:FOO = '233'; Write-Host $env:FOO; rm Env:\FOO

复杂实现仿 bash 可以用脚本:

使用方法:

with-env.ps1 FOO=foo BAR=bar 你的 命令

# 支持 dot-env 文件
with-env.ps1 .\.env OTHER_ENV=env 你的 命令

或者可以转换思路,换一个 shell 或使用 Cygwin、Gow、WSL等等。

赞赏
魔帆博客,版权所有 | 如未注明,均为原创
本站均采用 BY-NC-ND 协议 (署名-非商业性使用-禁止演绎) 进行授权。
转载请注明来自本站文章:powershll 像 bash 一样为单个命令设置临时环境变量(https://www.morfans.cn/archives/3049)

野小新

文章作者

野小新很野~

发表回复

textsms
account_circle
email

powershll 像 bash 一样为单个命令设置临时环境变量
问题场景 在 Linux 的 bash 等 shell 环境中,可以轻松的: EDITOR=nvim ./Morfans.cn.sh 在指定环境变量 EDITOR为 nvim 的情况下调用 Morfans.cn.sh 。 但是在 Windows 的 p…
扫描二维码继续阅读
2021-09-19