如何在PowerShell中立即更新环境变量(立即)?
问题描述:
我想上写的PowerShell脚本一些,它涉及到使用Windows环境变量如何在PowerShell中立即更新环境变量(立即)?
这里是脚本的例子
test.ps1
setX number 456
echo $env:number
我发现,$ ENV :编号不能立即更新在PowerShell相同的会话提示。我需要重新打开PowerShell提示。但是,这会破坏我的脚本 我该如何更新env变量?在linux下很容易与EXPORT命令的事,但对于Windows,这是一个危险的......
答
在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文章。
答
你试过
[environment]::setenvironmentvariable()
当我设置了[Environment] :: SetEnvironmentVariable(“mavar”,“TESTJPB”,“User”)后,它在同一个powershell的同一会话上不生效。它只在创建新的PowerShell时生效。我如何避免? – 2013-02-19 07:03:59
'$ env:mavar' =“TESTJPB”将其更改为本地PowerShell。 – JPBlanc 2013-02-19 12:14:29