Windows setx environment variables PowerShell
In Windows, the setx command allows storing environment variables in the Windows registry on a per-user or system basis. A problem arises when it is desired to remove such variables entirely. Setting a blank value does not work.
Example: assume one previously set the environment variable CC
to the
Intel C compiler
like:
setx CC icx
Now the problem is, you’d like the system to fall back to using whatever default C compiler is on the Windows system. The existing variable is visible in PowerShell via:
Get-ChildItem Env:CC
But trying to remove the variable with PowerShell command
Remove-Item Env:FC
is only effective for this PowerShell session. The old value of CC
comes back upon opening a new PowerShell.
To permanently remove the “setx” variable, we must remove it from where it’s stored in the Windows registry.
For this example of wanting to delete enviornment variable CC
, do from PowerShell:
reg delete "HKCU\Environment" /v CC
Optionally, confirm deletion with PowerShell:
Get-ChildItem Env:CC