Reputation: 1667
I'm trying to write a simple PowerShell script to deploy a Visual Studio ASPNET Core 1 project.
Currently, in a batch file i can say
Path=.\node_modules\.bin;%AppData%\npm;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External;%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External\git
That will modify the path variable for the duration of the session... for the life of me I can't figure out how to do this simple thing in powershell.
Can someone help me translate this into powershell?
TIA!
Upvotes: 67
Views: 70306
Reputation: 24515
$env:Path
VariableAppend to the Path
variable in the current window:
$env:Path += ";C:\New directory 1;C:\New directory 2"
Prefix the Path
variable in the current window:
$env:Path = "C:\New directory 1;C:\New directory 2;" + $env:Path
Replace the Path
variable in the current window (use with caution!):
$env:Path = "C:\New directory 1;C:\New directory 2"
editenv
UtilityI wrote a Windows command-line tool called editenv
that lets you interactively edit the content of an environment variable. It works from a Windows console (notably, it does not work from the PowerShell ISE):
editenv Path
This can be useful when you want to edit and rearrange the directories in your Path
in a more interactive fashion, and it affects only the current window.
Upvotes: 111
Reputation: 32145
You can just use $env:Path
, but if you're anxious that that isn't explicit enough, you can use System.Environment.SetEnvironmentVariable()
:
[System.Environment]::SetEnvironmentVariable('Path',$Value,[System.EnvironmentVariableTarget]::Process);
And GetEnvironmentVariable() can explicitly retrieve:
[System.Environment]::GetEnvironmentVariable('Path',[System.EnvironmentVariableTarget]::Process);
[System.Environment]::GetEnvironmentVariable('Path',[System.EnvironmentVariableTarget]::Machine);
[System.Environment]::GetEnvironmentVariable('Path',[System.EnvironmentVariableTarget]::User);
Upvotes: 6