如何在PowerShell上的同一会话(立即)更新环境变量?

时间:2013-02-19 03:37:21

标签: windows powershell environment-variables

我想在powershell上编写一些脚本,它涉及在windows上使用环境变量

这是脚本的例子

test.ps1

setX number 456
echo $env:number

我发现$ env:number无法在PowerShell提示符的同一会话中立即更新。我需要重新打开powershell提示符。但是,这会破坏我的脚本 我怎样才能立即更新env变量?在linux中,使用EXPORT命令很容易,但对于Windows来说,这是一个危险......

2 个答案:

答案 0 :(得分:2)

在PowerSell环境中,变量可通过提供程序获得。 provider是一种对所有树容器进行操作的方法。看看:

Get-PSProvider

然后驱动器是使用这些提供程序的实体。看看

Get-PSDrive

您可以看到它存在一个名为env

的驱动器

您可以尝试:

Get-childItem env:

设置您可以编写的环境变量:

$ env:mavar =“TESTJPB”

要创建更多永久环境变量(即用户级或计算机级),您需要使用.NET Framework和SetEnvironmentVariable方法。例如,此命令创建名为TestVariable:

的用户级环境变量
[Environment]::SetEnvironmentVariable("mavar", "TESTJPB", "User")

查看微软文章this

答案 1 :(得分:1)

你试过吗

[environment]::setenvironmentvariable()