为什么我不能检索自定义环境变量?

时间:2019-05-06 20:15:53

标签: powershell

我创建了一个用户环境变量testPurpose

test

如果我这样称呼我的脚本,则不会显示它:

$env:testPurpose

或者如果我这样尝试

$x = "testPurpose"
(get-item env:$x).Value

我收到此错误:

  

get-item:找不到路径“ Env:\ testPurpose”,因为它不存在。

使用gci env:* | sort-object name,我可以肯定地看到它已经创建

display envs

那我为什么不能找回它?如果我尝试这样做:

$env:ProgramData

我找回打印好的程序数据位置!

所以我很肯定这不是命令问题

2 个答案:

答案 0 :(得分:2)

尝试重新启动PowerShell会话。

环境变量仅在会话开始时加载,或在会话上下文中运行。

答案 1 :(得分:1)

您可能已经在运行的进程中创建了它们,它们仅可用于该会话。关闭该PS窗口后,它们也会消失。尝试将其设置为机器范围的变量,该变量应保持不变。

注意:我不确定为什么要创建这些变量,而不是仅仅在脚本中创建变量,而是每个变量都有。

[Environment]::SetEnvironmentVariable("testPurpose", "TESTING", "Machine")
(Get-Item "env:testPurpose").Value
$testPurpose = "testPurpose"
(Get-Item env:$testPurpose).Value