Skip to content

Instantly share code, notes, and snippets.

@DamianFlynn
Created February 2, 2014 13:36
Show Gist options
  • Select an option

  • Save DamianFlynn/8768494 to your computer and use it in GitHub Desktop.

Select an option

Save DamianFlynn/8768494 to your computer and use it in GitHub Desktop.
Function global:Add-Path()
{
[Cmdletbinding()]
param (
[parameter(Mandatory=$True, ValueFromPipeline=$True, Position=0)]
[String[]]$AddedFolder
)
# Get the current search path from the environment keys in the registry.
$OldPath=(Get-ItemProperty –Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' –Name PATH).Path
# See if a new folder has been supplied.
IF (!$AddedFolder)
{
Return 'No Folder Supplied. $ENV:PATH Unchanged'
}
# See if the new folder exists on the file system.
IF (!(TEST-PATH $AddedFolder))
{
Return 'Folder Does not Exist, Cannot be added to $ENV:PATH'
}
# See if the new Folder is already in the path.
IF ($ENV:PATH | Select-String -SimpleMatch $AddedFolder)
{
Return 'Folder already within $ENV:PATH'
}
# Set the New Path
$NewPath=$OldPath+';'+$AddedFolder
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH –Value $newPath
# Show our results back to the world
Return $NewPath
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment