Существует несколько способов создания переменных среды в PowerShell. Важно различать переменные PowerShell (например, $myVar
) и переменные среды , как вы их знаете из старой доброй командной строки (например, в cmd SET MYVAR=MYVAL
).
Чтобы создать переменную окружения в PowerShell, проще всего создать новый элемент в среде (Env
):
New-Item Env:/VarName -Value "Foo"
Пример кода, который вы разместили
Set-Variable -Name "Name" -Value "value"
создает переменную PowerShell , но проще написать $Name = "value"
.
Переменные PowerShell видны только в вашей области видимости PowerShell. Переменные среды могут быть прочитаны любой программой, которую вы запускаете как подпроцесс в текущей среде (например, сеанс PowerShell).
EDIT:
Интересен пример, размещенный в комментариях @ f64a :
[environment]::SetEnvironmentVariable("myName", "myValue",[System.EnvironmentVariableTarget]::Machine)
Это единственный способ манипулировать переменными среды через PowerShell вне вашей собственной области. С помощью EnvironmentVariableTarget
вы можете выбрать, где будет обрабатываться ваша переменная. Имейте в виду, что для манипулирования ими вам могут потребоваться более высокие привилегии.