惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Help Net Security
MyScale Blog
MyScale Blog
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
Vercel News
Vercel News
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
云风的 BLOG
云风的 BLOG

野小新 – 魔帆博客

Python包管理的血泪史:从混乱到秩序的漫长征 | 魔帆博客 Mac mini + iPad 随航梦幻联动!零显示器配置指南,iPad 秒变 Mac 主屏幕 | 魔帆博客 解锁iOS侧载自由:使用sideStore轻松搞定ipa签名 | 魔帆博客 Git配置:如何优雅的配置多用户并使用 ssh 密钥验证 | 魔帆博客 Git 合并本地两个不同的 Repo 仓库 | 魔帆博客 Git 提示 fatal: unsafe repository is owned by someone else 错误 | 魔帆博客 安装有 RootMagiskXposedPlay 的 WSA 安卓子系统 | 魔帆博客 Fedora 系统升级 32->34 跨版本升级 | 魔帆博客 教程:如何更新安装 docker-compose V2 和使用 docker switch | 魔帆博客 2022 年 Android 下的安卓浏览器使用指北-Firefox向 | 魔帆博客 Docker WSL1/2 迁移 Linux 发行版目录 | 魔帆博客 Spotify 主题 spicetify-fluent - 微软 win11 风格美化 | 魔帆博客 WSA 安卓子系统 adb 提示 cannot connect the target machine actively refused it 10061 | 魔帆博客 双重验证 Authy 导出所有 TOTP token 和 golang 配置 GOPROXY 解决网络问题 | 魔帆博客 Linux 教程:Linux 初学者必了解的概念 | 魔帆博客 安卓电池充电保护-智能充电/温控切断(Root方案) | 魔帆博客 备用机养成方案 - Tasker 安卓短信转发到 telegram | 魔帆博客 创建支持安全启动(Secure Boot)的 Arch Linux ISO 安装镜像 | 魔帆博客 MiBand小米手环2/3刷机刷固件刷表盘刷字体指南(iPhone iOS 也支持) | 魔帆博客
powershll 像 bash 一样为单个命令设置临时环境变量 | 魔帆博客
野小新 · 2021-09-19 · via 野小新 – 魔帆博客

问题场景

在 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等等。