2013-02-19 690 views
0

我想上写的PowerShell脚本一些,它涉及到使用Windows环境变量如何在PowerShell中立即更新环境变量(立即)?

这里是脚本的例子

test.ps1

setX number 456 
echo $env:number 

我发现,$ ENV :编号不能立即更新在PowerShell相同的会话提示。我需要重新打开PowerShell提示。但是,这会破坏我的脚本 我该如何更新env变量?在linux下很容易与EXPORT命令的事,但对于Windows,这是一个危险的......

回答

2

在PowerSell环境变量都可以通过提供商。 A provider是一种处理各种树木容器的方法。请看:

Get-PSProvider 

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

Get-PSDrive 

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

你可以试试驱动器:

Get-childItem env: 

设置环境变量,你可以这样写:

$ env:mavar =“TESTJPB”

创建更永久的环境您需要使用.NET Framework和SetEnvironmentVariable方法的配置变量(即用户级或机器级)。例如,此命令创建一个为TestVariable用户级环境变量:

[Environment]::SetEnvironmentVariable("mavar", "TESTJPB", "User") 

,看一下this Microsoft文章。

+0

当我设置了[Environment] :: SetEnvironmentVariable(“mavar”,“TESTJPB”,“User”)后,它在同一个powershell的同一会话上不生效。它只在创建新的PowerShell时生效。我如何避免? – 2013-02-19 07:03:59

+1

'$ env:mavar' =“TESTJPB”将其更改为本地PowerShell。 – JPBlanc 2013-02-19 12:14:29

1

你试过

[environment]::setenvironmentvariable()