【问题标题】:How to update environment variable on the same session (immediately) on powershell?如何在powershell的同一会话中(立即)更新环境变量?
【发布时间】:2013-02-03 15:47:35
【问题描述】:

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

这里是脚本示例

test.ps1

setX number 456
echo $env:number

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

【问题讨论】:

    标签: windows powershell environment-variables


    【解决方案1】:

    在 PowerSell 中,环境变量可通过提供商获得。 provider 是一种操作各种树容器的方法。看看:

    Get-PSProvider
    

    那么驱动器就是使用这些提供程序的实体。看看

    Get-PSDrive
    

    你可以看到它存在一个名为env的驱动器

    你可以试试:

    Get-childItem env:
    

    设置一个你可以写的环境变量:

    $env:mavar = "TESTJPB"

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

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

    查看thisMicrosoft 文章。

    【讨论】:

    • 设置 [Environment]::SetEnvironmentVariable("mavar", "TESTJPB", "User") 后,在同一个powershell的同一个会话中不生效。它仅在创建新的 powershell 时生效。如何避免?
    • $env:mavar = "TESTJPB" 将其更改为本地 PowerShell。
    【解决方案2】:

    你试过了吗

    [environment]::setenvironmentvariable() 
    

    【讨论】:

      猜你喜欢
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 2021-01-01
      • 2013-02-22
      • 1970-01-01
      相关资源
      最近更新 更多