PowerShell 变量与环境变量
- 笔记
- 2025-12-23
- 368热度
- 0评论
PowerShell 变量与环境变量速查笔记
一、速览总结(先看这里)
1️⃣ 常用命令速查
| 描述 | 命令 |
|---|---|
| 查看全部环境变量 | Get-ChildItem Env: 或者 ls Env: |
| 查看单个环境变量 | $Env:PATH |
| 判断是否存在 | Test-Path Env:JAVA_HOME |
| 临时设置(会话) | $Env:MY_VAR = "value" |
| 永久设置(用户) | [Environment]::SetEnvironmentVariable("MY_VAR","value","User") |
| 永久设置(系统) | [Environment]::SetEnvironmentVariable("MY_VAR","value","Machine") |
| 删除环境变量 | SetEnvironmentVariable("MY_VAR",$null,"User") |
2️⃣ 普通变量 vs 环境变量
| 对比项 | 普通变量 | 环境变量 |
|---|---|---|
| 写法 | $var |
$Env:VAR |
| 作用范围 | 当前会话 | 进程 / 用户 / 系统 |
| 是否持久 | 否 | 可持久 |
| 典型用途 | 脚本逻辑 | 程序配置 |
二、PowerShell 普通变量(简述)
在 PowerShell 语法设计中,变量名必须以 $ 开头
$ 用于明确告诉解析器:这是一个变量引用
没有 $ 的标识符会被当作:
- 命令名
- 字符串
- 参数
- 裸值(bare word)
普通变量只在当前 PowerShell 会话中存在。
$var = "hello"
$var
Get-Variable
Remove-Variable var
关闭窗口即失效
三、环境变量基础操作
1. 查看环境变量
Get-ChildItem Env:
$Env:PATH
$Env:TEMP
判断是否存在:
Test-Path Env:JAVA_HOME
Get-ChildItem(别名ls / dir / gci)
用于列出某个路径下的子项,返回的是对象集合,不仅限于文件。
| 参数 | 含义 |
|---|---|
-Recurse |
递归子目录 |
-File |
只列文件 |
-Directory |
只列文件夹 |
-Filter |
快速过滤 |
-Hidden |
显示隐藏项 |
Get-ChildItem不只是文件
Get-ChildItem Env: # 环境变量
Get-ChildItem Variable: # 变量
Get-ChildItem Alias: # 别名
Get-ChildItem HKCU:\ # 注册表
2. 创建 / 修改环境变量
临时(当前会话)
$Env:MY_VAR = "test"
永久(推荐方式)
[Environment]::SetEnvironmentVariable("MY_VAR","test","User")
作用范围说明:
Process:当前进程User:当前用户Machine:全系统(需管理员)
3. 修改 PATH(示例)
$old = [Environment]::GetEnvironmentVariable("PATH","User")
$new = $old + ";C:\MyApp\bin"
[Environment]::SetEnvironmentVariable("PATH",$new,"User")
建议修改前先备份原 PATH
4. 删除环境变量
Remove-Item Env:MY_VAR
[Environment]::SetEnvironmentVariable("MY_VAR",$null,"User")
四、脚本中的常见用法
$javaHome = $Env:JAVA_HOME
if (-not $Env:JAVA_HOME) {
Write-Host "JAVA_HOME 未设置"
}
五、注意事项(精简版)
- 修改系统变量需要管理员权限
- 新环境变量需重新打开程序才生效
- PATH 拼接注意分号
; - 不建议在脚本中频繁改系统变量