path.ps1
|
. $psscriptroot\types.ps1 function path_reload { $mach = [Environment]::GetEnvironmentVariable('path', 'Machine') $user = [Environment]::GetEnvironmentVariable('path', 'User') $env:path = $mach + ";" + $user } function path_ls ( [Parameter(Mandatory = $false)][Env] $cnt = [Env]::machine ) { switch ($cnt) { ([Env]::local) { $env:path.split(";") } default { [Environment]::GetEnvironmentVariable('path', $cnt).split(";") } } } function path_in ( [Parameter(Mandatory = $true)][string] $val, [Parameter(Mandatory = $false)][Env] $cnt = [Env]::machine ) { switch ($cnt) { ([Env]::local) { $env:path.split(";").contains("$val") } default { [Environment]::GetEnvironmentVariable('path', $cnt).split(";").contains("$val") } } } function path_add ( [Parameter(Mandatory = $true)][string] $val, [ValidateSet('Machine', 'User')][Env] $cnt = [Env]::machine ) { # add entry to path if not present if (path_in $val $cnt) { return } switch ($cnt) { ([Env]::local) { $vals = $env:path.split(";") $vals = $vals + $val $env:path = $vals -join ';' } default { $vals = [Environment]::GetEnvironmentVariable('path', $cnt).split(";") $vals = $vals + $val [Environment]::SetEnvironmentVariable('path', $vals -join ';', $cnt) } } } function path_rm ( [Parameter(Mandatory = $true)][string] $val, [Parameter(Mandatory = $false)][Env] $cnt = [Env]::machine ) { # remove an entry from path if present # does a strict (case-insensitive) -ne check against $val switch ($cnt) { ([Env]::local) { $vals = $env:path.split(";") $vals = $vals | Where-Object {$_ -ne $val} $env:path = $vals -join ';' } default { $vals = [Environment]::GetEnvironmentVariable('path', $cnt).split(";") $vals = $vals | Where-Object {$_ -ne $val} [Environment]::SetEnvironmentVariable('path', $vals -join ';', $cnt) } } } |