Skip to content

Instantly share code, notes, and snippets.

@mkropat
Last active August 2, 2024 00:35
Show Gist options
  • Save mkropat/c1226e0cc2ca941b23a9 to your computer and use it in GitHub Desktop.
Save mkropat/c1226e0cc2ca941b23a9 to your computer and use it in GitHub Desktop.

Revisions

  1. mkropat revised this gist Nov 5, 2019. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion EnvPaths.psm1
    Original file line number Diff line number Diff line change
    @@ -73,4 +73,6 @@ function Get-EnvPath {

    [Environment]::GetEnvironmentVariable('Path', $containerType) -split ';' |
    where { $_ }
    }
    }

    Export-ModuleMember -Function *
  2. mkropat revised this gist Jan 17, 2016. 1 changed file with 26 additions and 22 deletions.
    48 changes: 26 additions & 22 deletions EnvPaths.psm1
    Original file line number Diff line number Diff line change
    @@ -3,20 +3,22 @@ function Add-EnvPath {
    [Parameter(Mandatory=$true)]
    [string] $Path,

    [ValidateSet('Machine', 'User')]
    [string] $Container = 'Machine'
    [ValidateSet('Machine', 'User', 'Session')]
    [string] $Container = 'Session'
    )

    $containerMapping = @{
    Machine = [EnvironmentVariableTarget]::Machine
    User = [EnvironmentVariableTarget]::User
    }
    $containerType = $containerMapping[$Container]
    if ($Container -ne 'Session') {
    $containerMapping = @{
    Machine = [EnvironmentVariableTarget]::Machine
    User = [EnvironmentVariableTarget]::User
    }
    $containerType = $containerMapping[$Container]

    $persistedPaths = [Environment]::GetEnvironmentVariable('Path', $containerType) -split ';'
    if ($persistedPaths -notcontains $Path) {
    $persistedPaths = $persistedPaths + $Path | where { $_ }
    [Environment]::SetEnvironmentVariable('Path', $persistedPaths -join ';', $containerType)
    $persistedPaths = [Environment]::GetEnvironmentVariable('Path', $containerType) -split ';'
    if ($persistedPaths -notcontains $Path) {
    $persistedPaths = $persistedPaths + $Path | where { $_ }
    [Environment]::SetEnvironmentVariable('Path', $persistedPaths -join ';', $containerType)
    }
    }

    $envPaths = $env:Path -split ';'
    @@ -31,20 +33,22 @@ function Remove-EnvPath {
    [Parameter(Mandatory=$true)]
    [string] $Path,

    [ValidateSet('Machine', 'User')]
    [string] $Container = 'Machine'
    [ValidateSet('Machine', 'User', 'Session')]
    [string] $Container = 'Session'
    )

    $containerMapping = @{
    Machine = [EnvironmentVariableTarget]::Machine
    User = [EnvironmentVariableTarget]::User
    }
    $containerType = $containerMapping[$Container]
    if ($Container -ne 'Session') {
    $containerMapping = @{
    Machine = [EnvironmentVariableTarget]::Machine
    User = [EnvironmentVariableTarget]::User
    }
    $containerType = $containerMapping[$Container]

    $persistedPaths = [Environment]::GetEnvironmentVariable('Path', $containerType) -split ';'
    if ($persistedPaths -contains $Path) {
    $persistedPaths = $persistedPaths | where { $_ -and $_ -ne $Path }
    [Environment]::SetEnvironmentVariable('Path', $persistedPaths -join ';', $containerType)
    $persistedPaths = [Environment]::GetEnvironmentVariable('Path', $containerType) -split ';'
    if ($persistedPaths -contains $Path) {
    $persistedPaths = $persistedPaths | where { $_ -and $_ -ne $Path }
    [Environment]::SetEnvironmentVariable('Path', $persistedPaths -join ';', $containerType)
    }
    }

    $envPaths = $env:Path -split ';'
  3. mkropat created this gist Jan 17, 2016.
    72 changes: 72 additions & 0 deletions EnvPaths.psm1
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,72 @@
    function Add-EnvPath {
    param(
    [Parameter(Mandatory=$true)]
    [string] $Path,

    [ValidateSet('Machine', 'User')]
    [string] $Container = 'Machine'
    )

    $containerMapping = @{
    Machine = [EnvironmentVariableTarget]::Machine
    User = [EnvironmentVariableTarget]::User
    }
    $containerType = $containerMapping[$Container]

    $persistedPaths = [Environment]::GetEnvironmentVariable('Path', $containerType) -split ';'
    if ($persistedPaths -notcontains $Path) {
    $persistedPaths = $persistedPaths + $Path | where { $_ }
    [Environment]::SetEnvironmentVariable('Path', $persistedPaths -join ';', $containerType)
    }

    $envPaths = $env:Path -split ';'
    if ($envPaths -notcontains $Path) {
    $envPaths = $envPaths + $Path | where { $_ }
    $env:Path = $envPaths -join ';'
    }
    }

    function Remove-EnvPath {
    param(
    [Parameter(Mandatory=$true)]
    [string] $Path,

    [ValidateSet('Machine', 'User')]
    [string] $Container = 'Machine'
    )

    $containerMapping = @{
    Machine = [EnvironmentVariableTarget]::Machine
    User = [EnvironmentVariableTarget]::User
    }
    $containerType = $containerMapping[$Container]

    $persistedPaths = [Environment]::GetEnvironmentVariable('Path', $containerType) -split ';'
    if ($persistedPaths -contains $Path) {
    $persistedPaths = $persistedPaths | where { $_ -and $_ -ne $Path }
    [Environment]::SetEnvironmentVariable('Path', $persistedPaths -join ';', $containerType)
    }

    $envPaths = $env:Path -split ';'
    if ($envPaths -contains $Path) {
    $envPaths = $envPaths | where { $_ -and $_ -ne $Path }
    $env:Path = $envPaths -join ';'
    }
    }

    function Get-EnvPath {
    param(
    [Parameter(Mandatory=$true)]
    [ValidateSet('Machine', 'User')]
    [string] $Container
    )

    $containerMapping = @{
    Machine = [EnvironmentVariableTarget]::Machine
    User = [EnvironmentVariableTarget]::User
    }
    $containerType = $containerMapping[$Container]

    [Environment]::GetEnvironmentVariable('Path', $containerType) -split ';' |
    where { $_ }
    }