PowerShell命令行输出和添加系统环境变量

1,408 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第28天,点击查看活动详情

主要介绍使用PowerShell命令如何查看、修改和删除系统环境变量,对于需要操作添加 PATH 环境变量非常实用。

由于 Powershell 的跨平台,其环境变量修改可以在windows、linux、macos中。

在 Linux 或 macOS 上,使用冒号 (:) 而不是分号 (;) 将新路径与列表中前面的路径分开。

环境变量的级别或范围

  1. 系统级别(Machine
  2. 用户级别(User
  3. 会话级别(Process),即在当前 powershell 内有效,关掉 powershell 就失效,会话级别的变量列表来自进程的设置、MachineUser范围中的变量,三者组成了会话中的环境变量。

修改环境变量([Environment])

下面仅用一条命令来实现 User Path 环境变量的修改设置。

实际使用时直接复制即可,需要修改指定环境变量 $target 的作用域(用户 or 系统 or 会话),就可以实现环境变量的增改删查。$addPath 为要添加的新的PATH路径。

$addPath='c:\add\you\path\here'; $target='User'; $path = [Environment]::GetEnvironmentVariable('Path', $target); $newPath = $path + ';' + $addPath; [Environment]::SetEnvironmentVariable('Path', $newPath, $target)

有时当前的的 PATH 值的结尾已经有了分号;,则可以通过判断$path变量是否以;结尾,来设置添加新增的路径时,是否添加;,防止多余的;

$addPath='c:\add\you\path\here'; $target='User'; $path = [Environment]::GetEnvironmentVariable('Path', $target); if($path -match ";$"){ $newPath = $path + $addPath; } else { $newPath = $path + ';' + $addPath; } [Environment]::SetEnvironmentVariable('Path', $newPath, $target)
  • $addPath 为要添加的PATH路径

  • $target 表示环境变量的级别(作用域),Machine(系统级别) / User(用户级别) / Process(会话级别) 三选一,前两个修改后会即时生效,且关闭powershell会话任然有效。

注,此处的单引号'也可以使用双引号"

PowerShell中通过 -match 可以借助正则实现字符串匹配。

会话级别的修改环境变量,的另外方法

Powershell中$env【推荐】

  • 查看某个环境变量$env:<ENV_Name>

如下查看Path环境变量的值:

$env:path
  • 通过分割符 -split 参数,分割显示环境变量中的数据项。

上面直接查看全部环境变量的值,堆在一起不方便查看。则可以使用-split“;”参数

$env:path -split";"

$Env:windir 显示windows路径;$env:os 查看当前系统;$env:NUMBER_OF_PROCESSORS 查看CPU核数...

  • 添加或修改(替换)环境变量
$env:myEnvTest="a Environment Variable Test"
  • 向已有环境变量添加新项

比如添加 path 项:

$env:path+=";c:\your_path"

添加 myEnvTest 项:

$env:myEnvTest+="Append Content"
  • 清空环境变量值
$env:myEnvTest=""

Powershell中env

直接使用 env 只能作为一个关键字,需要结合其他命令实现查看(ls)、删除(del)、添加功能。

  • 查看所有环境变量
ls env:
  • 搜索某关键字的环境变量
ls env:NODE*
  • 查看某环境变量
ls env:NODE_ENV

# 或查看path
ls env:path

  • 删除环境变量【慎重,好在只是会话级别修改】
del evn:<ENV_Name>

cmd中使用set命令

cmd设置环境变量

  • 查看所有环境变量
set
  • 查看单个环境变量
set path
  • 添加/更新环境变量
set NODE_ENV=development
  • 删除环境变量
set NODE_ENV=

参考