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

简介: 主要介绍使用PowerShell命令如何查看、修改和删除系统环境变量,对于需要操作添加PATH环境变量非常实用 。由于 Powershell 的跨平台,其环境变量修改可以在linux、macos...
由于 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=

参考

相关文章
|
3月前
|
Windows
Powershell 重新排列去重 Windows环境变量
【9月更文挑战第13天】本文介绍如何使用PowerShell对Windows环境变量进行重新排列和去重。首先通过`$env:`访问环境变量,接着使用`-split`命令分割路径,再利用`Select-Object -Unique`去除重复项。之后可根据需要对路径进行排序,最后将处理后的路径组合并更新环境变量。注意修改环境变量前应备份重要数据并了解潜在影响。
129 10
|
4月前
|
数据安全/隐私保护 异构计算 Windows
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
|
7月前
|
存储 运维 Java
PowerShell系列(八)PowerShell系统默认内置的Provider介绍
【2月更文挑战第3篇】Alias Provider用来标记其他命令的对象,一般用来标记命令中比较长的函数或者命令,也支持在PowerShell当中指定CMD Shell 中的命令的别名。其实目的都是通过较短的别名来简化一些命令的使用。
PowerShell系列(八)PowerShell系统默认内置的Provider介绍
|
7月前
|
自然语言处理 运维 数据可视化
PowerShell系列(一):PowerShell介绍和cmd命令行的区别
【1月更文挑战第3天】什么是Windows系统的命令行环境,之前我们在使用XP、Win7系统的时候,用的最多的就是微软官方自带的cmd命令窗口了,我们通过敲命令行窗口可以实现和操作系统之间的交互。当然随着微软技术的快速发展,到了目前比较流行的Win10操作系
|
7月前
|
存储 JSON 运维
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
164 0
|
7月前
|
Ubuntu Shell Docker
docker Ubuntu系统中安装使用 powershell
docker Ubuntu系统中安装使用 powershell
99 0
|
7月前
|
前端开发 微服务 Windows
PowerShell 命令窗口执行 pnpm 命令报错 无法加载文件 pnpm.ps1,因为在此系统上禁止运行脚本
PowerShell 命令窗口执行 pnpm 命令报错 无法加载文件 pnpm.ps1,因为在此系统上禁止运行脚本
|
Windows
powershell配置anaconda及解决【无法加载文件C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本】的问题
powershell配置anaconda及解决【无法加载文件C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本】的问题
2628 0
|
Ubuntu Shell Docker
Ubuntu系统中使用 powershell
本文介绍如何在 Ubuntu 系统中安装使用 Powershell (以 docker 内安装为示范)
228 0
|
2月前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
50 0