![]() |
1
2
环境变量存储在注册表中,而不是文件中,它们在powershell启动时自动加载。没什么好点的。通过列出
PS C:\> Get-ChildItem env: Name Value ---- ----- ALLUSERSPROFILE C:\ProgramData APPDATA C:\Users\jsmith\AppData\Roaming CommonProgramFiles C:\Program Files\Common Files ...
环境变量不同于常规powershell变量,它们必须通过
PS C:\> $username = 'foo' # ← PowerShell variable PS C:\> $username foo PS C:\> $env:username # ← environment variable jsmith 可以通过更改变量来修改当前环境 PS C:\> $env:Path += ';C:\some\folder' # append C:\some\folder to PATH 或者完全替换它们: PS C:\> $env:Path = 'C:\some\folder' # set PATH to C:\some\folder
不建议操作环境变量,如
不过,请注意, 可以 修改环境变量或通过点源文件(在变量名中使用适当的前缀)加载这些变量不会持久化,因为它们只应用于流程环境。 要对环境变量进行持久更改,需要在注册表中编辑值
或者使用.net api
当心有 pitfalls 通过api更改注册表值。
使用
您还可以通过从注册表中重新读取环境变量的值来更新启动进程后更改的环境变量:
不过,请注意,windows将用户和系统环境存储在不同的位置。如果你有一个变量
如果需要为当前进程同时更改环境变量
和
持久化您需要执行两个操作:更改
嗯,从技术上讲,注册表中包含用户环境变量的部分
是
存储在文件中
|
![]() |
PHPLover · “支持PHP扩展或功能的端口”实际上是什么意思? 10 月前 |